Комп'ютерну програму називають портативною, якщо для її запуску на різних платформах потрібно дуже мало зусиль. Необхідною умовою переносимості є узагальнена абстракція між логікою програми та системними інтерфейсами. Коли програмне забезпечення з однаковою функціональністю виробляється для кількох обчислювальних платформ, переносимість є ключовою проблемою для зниження витрат на розробку.
Стратегії портативності
Переносність програмного забезпечення може включати:
- Перенесення встановлених програмних файлів на інший комп’ютер з практично такою ж архітектурою.
- Перевстановлення програми з файлів дистрибутива на іншому комп’ютері з такою ж архітектурою.
- Створення виконуваних програм для різних платформ з вихідного коду; це те, що зазвичай розуміють під «портуванням».
Подібні системи
Часто передача файлів, що реалізовані програмними файлами, можлива між двома комп'ютерами з операційними системами одного сімейства та з процесорами, що мають подібні набори інструкцій.
У найпростішому випадку файл або файли можна скопіювати з однієї машини на іншу. Однак у багатьох випадках програмне забезпечення встановлюється на комп’ютер способом, який залежить від його обладнання, програмного забезпечення та налаштування, з драйверами пристроїв для певних пристроїв, з використанням встановленої операційної системи та допоміжних програмних компонентів, а також з використанням різних дисків або каталогів.
У деяких випадках портативне програмне забезпечення розроблене для роботи на різних комп’ютерах із сумісними операційними системами та процесорами без машинозалежної установки. Перенесення — це не більше, ніж передача визначених каталогів та їхнього вмісту. Програмне забезпечення, встановлене на портативних накопичувачах (таких як USB-накопичувачі) можна використовувати на будь-якому сумісному комп’ютері, підключивши накопичувач, зберігає всю інформацію про налаштування на знімному пристрої. Інформація про апаратне та програмне забезпечення часто зберігається у файлах конфігурації у визначених місцях (наприклад, у реєстрі на машинах під керуванням Microsoft Windows).
Програмне забезпечення, яке не є портативним, потрібно буде передати із змінами для підтримки середовища на кінцевій машині.
Процесори
Станом на 2011 більшість настільних та портативних комп'ютерів використовували мікропроцесори сумісні з 32- і 64-розрядними наборами інструкцій x86. Менші портативні пристрої використовують процесори з різними та несумісними наборами інструкцій, наприклад, ARM. Різниця між більшими та меншими пристроями в тому, що детальна робота програмного забезпечення відрізняється; програму, розроблену для належного відображення на великому екрані, неможливо просто перенести на кишеньковий смартфон з крихітним екраном, навіть якщо функціональність подібна.
Вебзастосунки мають бути незалежними від процесора, тому переносимість може бути досягнута за допомогою методів веб-програмування, написання на JavaScript. Така програма може працювати в звичайному веббраузері. Такі вебпрограми, з міркувань безпеки, мають мати обмежений контроль над головним комп’ютером, особливо до читання та запису файлів. Невебпрограми, встановлені на комп’ютер звичайним чином, можуть мати більший контроль, але досягати портативності системи, підключаючись до портативних бібліотек, що забезпечують однаковий інтерфейс у різних системах.
Переносність вихідного коду
Програмне забезпечення може бути зібране та зв’язане з вихідного коду для різних операційних систем і процесорів, якщо воно написано мовою програмування, що підтримує компіляцію для платформ. Зазвичай це завдання для розробників програми; звичайні користувачі не мають ані доступу до вихідного коду, ані необхідних навичок.
У середовищах з відкритим кодом (наприклад, Linux) вихідний код доступний для всіх. Раніше він часто розповсюджувався в стандартизованому форматі та міг бути вбудованим у виконуваний код зі стандартним інструментом Make для конкретної системи серед помірно обізнаних користувачів, якщо під час збірки не траплялося помилок. Деякі дистрибутиви Linux поширюють програмне забезпечення користувачам у вихідній формі. У цих випадках, зазвичай, немає потреби в детальній адаптації програмного забезпечення для системи; воно поширюється таким чином, що змінює процес компіляції відповідно до системи.
Спроби перенести вихідний код
Навіть з такими портативними мовами, як C і , спроби перенесення вихідного коду можуть значно відрізнятися. Автори UNIX/32V (1979) повідомили, що «оболонка Борна [...] вимагала найбільших зусиль для перетворення будь-якої нібито переносної програми з тієї простої причини, що вона не переносна».
Іноді спроби полягають у перекомпіляції вихідного коду, але іноді необхідно переписати основні частини програмного забезпечення. Багато специфікацій мови описують поведінку, визначену реалізацією (наприклад, зсув управо цілого числа зі знаком у C може здійснювати логічний або арифметичний зсув). Функції операційної системи або сторонні бібліотеки можуть бути недоступними в цільовій системі, а можуть бути доступними, але демонструвати дещо іншу поведінку (наприклад: utime() не працює у Windows з EACCES, коли він викликається для каталогу). Сам програмний код також може містити непереносимі речі, як-от шляхи включених файлів. Не всі операційні системи приймають літери дисків і зворотну риску \ як роздільник шляху. Реалізація визначених речей, таких як порядок байтів і розмір цілого числа, також може збільшити важкість перенесення. На практиці вимоги мов, таких як C і , на наявність WOCA (пишіть один раз, компілюйте де завгодно ) є спірним.
Дивіться також
- Сумісність
- Багатоплатформне програмне забезпечення
- Апаратно-залежне програмне забезпечення
- C (мова програмування)
- Мовна сумісність
- Тестування портативності
- Транскомпілятор
- Переносність даних
Джерела
- Thomas B. London and John F. Reiser (1978). A Unix operating system for the DEC VAX-11/780 computer. Bell Labs internal memo 78-1353-4.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Komp yuternu programu nazivayut portativnoyu yaksho dlya yiyi zapusku na riznih platformah potribno duzhe malo zusil Neobhidnoyu umovoyu perenosimosti ye uzagalnena abstrakciya mizh logikoyu programi ta sistemnimi interfejsami Koli programne zabezpechennya z odnakovoyu funkcionalnistyu viroblyayetsya dlya kilkoh obchislyuvalnih platform perenosimist ye klyuchovoyu problemoyu dlya znizhennya vitrat na rozrobku Videoigri sho pracyuyut na riznih aparatnih platformah Strategiyi portativnostiPerenosnist programnogo zabezpechennya mozhe vklyuchati Perenesennya vstanovlenih programnih fajliv na inshij komp yuter z praktichno takoyu zh arhitekturoyu Perevstanovlennya programi z fajliv distributiva na inshomu komp yuteri z takoyu zh arhitekturoyu Stvorennya vikonuvanih program dlya riznih platform z vihidnogo kodu ce te sho zazvichaj rozumiyut pid portuvannyam Podibni sistemi Chasto peredacha fajliv sho realizovani programnimi fajlami mozhliva mizh dvoma komp yuterami z operacijnimi sistemami odnogo simejstva ta z procesorami sho mayut podibni nabori instrukcij U najprostishomu vipadku fajl abo fajli mozhna skopiyuvati z odniyeyi mashini na inshu Odnak u bagatoh vipadkah programne zabezpechennya vstanovlyuyetsya na komp yuter sposobom yakij zalezhit vid jogo obladnannya programnogo zabezpechennya ta nalashtuvannya z drajverami pristroyiv dlya pevnih pristroyiv z vikoristannyam vstanovlenoyi operacijnoyi sistemi ta dopomizhnih programnih komponentiv a takozh z vikoristannyam riznih diskiv abo katalogiv U deyakih vipadkah portativne programne zabezpechennya rozroblene dlya roboti na riznih komp yuterah iz sumisnimi operacijnimi sistemami ta procesorami bez mashinozalezhnoyi ustanovki Perenesennya ce ne bilshe nizh peredacha viznachenih katalogiv ta yihnogo vmistu Programne zabezpechennya vstanovlene na portativnih nakopichuvachah takih yak USB nakopichuvachi mozhna vikoristovuvati na bud yakomu sumisnomu komp yuteri pidklyuchivshi nakopichuvach zberigaye vsyu informaciyu pro nalashtuvannya na znimnomu pristroyi Informaciya pro aparatne ta programne zabezpechennya chasto zberigayetsya u fajlah konfiguraciyi u viznachenih miscyah napriklad u reyestri na mashinah pid keruvannyam Microsoft Windows Programne zabezpechennya yake ne ye portativnim potribno bude peredati iz zminami dlya pidtrimki seredovisha na kincevij mashini Procesori Stanom na 2011 bilshist nastilnih ta portativnih komp yuteriv vikoristovuvali mikroprocesori sumisni z 32 i 64 rozryadnimi naborami instrukcij x86 Menshi portativni pristroyi vikoristovuyut procesori z riznimi ta nesumisnimi naborami instrukcij napriklad ARM Riznicya mizh bilshimi ta menshimi pristroyami v tomu sho detalna robota programnogo zabezpechennya vidriznyayetsya programu rozroblenu dlya nalezhnogo vidobrazhennya na velikomu ekrani nemozhlivo prosto perenesti na kishenkovij smartfon z krihitnim ekranom navit yaksho funkcionalnist podibna Vebzastosunki mayut buti nezalezhnimi vid procesora tomu perenosimist mozhe buti dosyagnuta za dopomogoyu metodiv veb programuvannya napisannya na JavaScript Taka programa mozhe pracyuvati v zvichajnomu vebbrauzeri Taki vebprogrami z mirkuvan bezpeki mayut mati obmezhenij kontrol nad golovnim komp yuterom osoblivo do chitannya ta zapisu fajliv Nevebprogrami vstanovleni na komp yuter zvichajnim chinom mozhut mati bilshij kontrol ale dosyagati portativnosti sistemi pidklyuchayuchis do portativnih bibliotek sho zabezpechuyut odnakovij interfejs u riznih sistemah Perenosnist vihidnogo koduProgramne zabezpechennya mozhe buti zibrane ta zv yazane z vihidnogo kodu dlya riznih operacijnih sistem i procesoriv yaksho vono napisano movoyu programuvannya sho pidtrimuye kompilyaciyu dlya platform Zazvichaj ce zavdannya dlya rozrobnikiv programi zvichajni koristuvachi ne mayut ani dostupu do vihidnogo kodu ani neobhidnih navichok U seredovishah z vidkritim kodom napriklad Linux vihidnij kod dostupnij dlya vsih Ranishe vin chasto rozpovsyudzhuvavsya v standartizovanomu formati ta mig buti vbudovanim u vikonuvanij kod zi standartnim instrumentom Make dlya konkretnoyi sistemi sered pomirno obiznanih koristuvachiv yaksho pid chas zbirki ne traplyalosya pomilok Deyaki distributivi Linux poshiryuyut programne zabezpechennya koristuvacham u vihidnij formi U cih vipadkah zazvichaj nemaye potrebi v detalnij adaptaciyi programnogo zabezpechennya dlya sistemi vono poshiryuyetsya takim chinom sho zminyuye proces kompilyaciyi vidpovidno do sistemi Sprobi perenesti vihidnij kod Navit z takimi portativnimi movami yak C i C sprobi perenesennya vihidnogo kodu mozhut znachno vidriznyatisya Avtori UNIX 32V 1979 povidomili sho obolonka Borna vimagala najbilshih zusil dlya peretvorennya bud yakoyi nibito perenosnoyi programi z tiyeyi prostoyi prichini sho vona ne perenosna Inodi sprobi polyagayut u perekompilyaciyi vihidnogo kodu ale inodi neobhidno perepisati osnovni chastini programnogo zabezpechennya Bagato specifikacij movi opisuyut povedinku viznachenu realizaciyeyu napriklad zsuv upravo cilogo chisla zi znakom u C mozhe zdijsnyuvati logichnij abo arifmetichnij zsuv Funkciyi operacijnoyi sistemi abo storonni biblioteki mozhut buti nedostupnimi v cilovij sistemi a mozhut buti dostupnimi ale demonstruvati desho inshu povedinku napriklad utime ne pracyuye u Windows z EACCES koli vin viklikayetsya dlya katalogu Sam programnij kod takozh mozhe mistiti neperenosimi rechi yak ot shlyahi vklyuchenih fajliv Ne vsi operacijni sistemi prijmayut literi diskiv i zvorotnu risku yak rozdilnik shlyahu Realizaciya viznachenih rechej takih yak poryadok bajtiv i rozmir cilogo chisla takozh mozhe zbilshiti vazhkist perenesennya Na praktici vimogi mov takih yak C i C na nayavnist WOCA pishit odin raz kompilyujte de zavgodno ye spirnim Divitsya takozhSumisnist Bagatoplatformne programne zabezpechennya Aparatno zalezhne programne zabezpechennya C mova programuvannya Movna sumisnist Testuvannya portativnosti Transkompilyator Perenosnist danihDzherelaThomas B London and John F Reiser 1978 A Unix operating system for the DEC VAX 11 780 computer Bell Labs internal memo 78 1353 4