Когато хората се позовават на тичане на родния софтуер, емулация и софтуерна съвместимост, към какво точно се отнасят? Прочетете, докато се впускаме в концепцията за родния софтуер.
Днешната сесия за въпроси и отговори идва от учтивостна SuperUser - подразделение на Stack Exchange - общността, управлявана от общността, на уеб сайтове за Q & A.
Четецът на SuperUser Throsby е любопитен за това, какво означава да стартирате софтуер натам. Той пише:
Чудех се какво ли означава, че софтуерът трябва да работи тихо. Какво точно е такъв софтуер и как се различава от софтуера, който не работи нативно? Как мога да разбера дали даден софтуер ще работи на моя компютър? Възможно ли е вече да съществува софтуер на компютъра ми, който работи на родителски произход?
Прочетете за отлична аналогия, която обяснява точно какво означава да бъдете родени в дадена система.
Доставчикът на SuperUser Deltik предлага фантастична аналогия, която подчертава какво означава за софтуера да е роден и какъв друг вид софтуер може да се намери на дадена система:
Софтуерът е роден на платформа, ако е проектиран да работи на тази платформа.
Платформата обикновено се отнася до операционна система, но може да се прилага и за устройства като Nintendo 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? Вижте цялата тема на дискусията тук.