Какво означава това за софтуера да се използва?
Когато хората се отнасят до използването на собствен софтуер, емулация и софтуерна съвместимост, какво точно имат предвид? Прочетете, тъй като ние се рови в концепцията на родния софтуер.
Сесията за днешните въпроси и отговори идва с любезност на SuperUser - подразделение на Stack Exchange, обединено от общността групиране на уеб сайтове с въпроси и отговори.
Въпроса
Четецът на SuperUser Throsby е любопитен какво означава да се стартира софтуера. Той пише:
Чудех се какво означава за софтуера да работи оригинално. Какво точно е такъв софтуер и как е различен от софтуера, който не работи оригинално? Как мога да разбера дали дадено парче софтуер ще се изпълни на компютъра ми? Вероятно ли ще има софтуер, който вече работи на моя компютър и работи оригинално?
Прочетете за отлична аналогия, обясняваща точно какво означава да сте роден в дадена система.
Отговорът
Сътрудникът на SuperUser Deltik предлага фантастична аналогия, която подчертава какво означава софтуерът да бъде роден и какъв друг софтуер може да се намери на дадена система:
Софтуерът е собственост на платформа, ако е проектирана да работи на тази платформа.
Платформата обикновено се отнася за операционна система, но може да се прилага и за устройства като Nintendo Game Boy.
Използвайки Game Boy като пример, той получава своя софтуер от касети. Тези касети съдържат код, който се изпълнява нативно на Game Boy.
емулатори са слой, който позволява на софтуер, проектиран за една платформа, да бъде стартиран на друг. Например, има емулатори, които могат да изпълняват изображения на касети на Game Boy и ви позволяват да играете игри на Game Boy на компютъра си или дори на мобилния си телефон..
А слой за съвместимост е нещо като емулатор. Когато 64-битовите компютри и операционните системи станаха масови, те трябваше да бъдат съвместими със съществуващите 32-битови технологии. Тъй като 64-битовите и 32-битовите архитектури са много различни, често е необходим слой за съвместимост за изпълнение на 32-битов софтуер на 64-битови машини. За 64-битови издания на Microsoft Windows Microsoft трябваше да напише слой за съвместимост, така че 32-битовите програми да работят на новата 64-битова система. Ето защо някои програми често се инсталират в папка, наречена
Програмни файлове (x86)
, къдетоx86
означава „32-битов“.Слоевете за съвместимост са по-интимни с родната система, отколкото са емулаторите. VirtualBoxемулира хардуер за операционни системи * и системите, които той емулира, няма много пряко взаимодействие с хост системата. WoW64 е a слой за съвместимост в това, че позволява на 32-битови програми да работят на 64-битов Windows по по-интегриран начин. WoW64 помага за създаването на програми съвместим отколкотоподражават в изолирана среда.
А библиотека за превод е компонент на слоевете за съвместимост. Всеки път, когато двоичният код се изпълнява неприродно, транслационната библиотека помага за пренасочване на чужди, неместни повиквания към местни повиквания, които системата може да разбере. Програмите за сглобяване, написани за оригиналния TI-83, може да не са съвместими с по-новите TI-83/84 Plus калкулатори, защото някои обаждания, които имат смисъл в архитектурата на TI-83, вече не са валидни в TI-83/84 +. Преводаческа библиотека (вероятно включена в черупки като MirageOS) гарантира, че повикванията към TI-83 отиват към новите, актуализирани места в TI-83/84 + калкулаторите.
Независим от платформата код е написан на език, който е тълкува от нещо, което обикновено се изпълнява естествено. Например, PHP е език за програмиране, който се интерпретира и изпълнява от инсталирания PHP бинарник, който вече е компилиран нативно за Windows, Mac и Unix-базирани операционни системи. PHP кодът, който пишат скрипторите за уеб, е независим от платформата, което позволява на кода да работи на множество операционни системи, докато PHP е инсталиран за тези операционни системи.
Имате ли какво да добавите към обяснението? Звукът е изключен в коментарите. Искате ли да прочетете повече отговори от други технологични потребители на Stack Exchange? Вижте пълната тема за дискусия тук.