як знати, що підтримує операційна система, які типи розширень файлів? [зачинено]


-5

.exe Розширення файлу працює на Windows, але не працює на Linux. Розширення файлу dmg працює на mac os, але не запускається на Windows. які критерії визначають, чи буде працювати файл чи ні?

тепер розробляється Google Fuchsia os. Він написаний на C, C ++, Dart, Go, Rust, Python. Це означає, що програма, написана на C, C ++, Dart, Go, Rust, Python, працюватиме на Google Fuchsia? або це залежить від іншого фактора?


1
розширення - це просто зручний метод цього, але він дійсно не визначає, чи файл можна виконувати / виконувати на певній ОС. DMG - це лише посилання на тип файлу зображення диска (подібний до ISO), але не виконується. "Програми" для Mac - це фактично розширення .app, а ті .app - це фактично папки з набагато більшою кількістю файлів під ним. Отже, ні, розширення файлу не визначає, буде працювати файл чи ні. Зазвичай файл є виконавчим файлом, якщо ОС розуміє, що робити з файлом (зазвичай після того, як вихідний код буде зібраний для цієї конкретної ОС).
Дарій

@Darius - це хороша відповідь, чому б не зробити його одним і видалити звідси.
Hannu

@Hannu Mine був трохи постріл у темряві і не зовсім повна відповідь. Тому я викладаю це як коментар :)
Дарій

Відповіді:


1

Існує три дуже різні типи "виконуваних" файлів:

"Двійкові" файли

"Бінарний" - неправильна назва, але найчастіше використовується. Зазвичай вони мають .exeрозширення для Windows, і зазвичай це не розширення для Unix / Linux (але іноді ви можете бачити a .bin). Ці файли містять код, безпосередньо виконуваний процесором, безпосередньо використовуватимуть сервіси операційної системи (наприклад, для читання / запису файлів або відображення речей користувачеві), і вони повинні бути у певному форматі, щоб операційна система могла завантажувати та виконувати їх. Тому вони різні для кожної операційної системи. Зазвичай вони записуються на С або С ++. На практиці вам не потрібно знати ...

"Інтерпретовані" файли

Виконані файли - це просто "просто текстові" файли (їх можна створити / редагувати за допомогою простого текстового редактора). Щоб їх виконати, вони повинні бути завантажені та інтерпретовані програмою, що називається "інтерпретатор" (цей перекладач потрапляє до категорії "двійкові" вище). Ви можете мати конкретні версії інтерпретатора для кожної операційної системи, тому ви можете запускати ці файли в будь-якій операційній системі, для якої є перекладач. Типові мови: Python ( .py), Perl ( .pl), JavaScript ( .js).

Файли "байт-код"

Ці файли потрапляють десь між двома іншими. Замість створення програми для конкретного типу машини або операційної системи створюється "двійкова" програма для деякої гіпотетичної "віртуальної машини". Для його виконання ви використовуєте іншу "двійкову" програму, яка імітує / емулює цю віртуальну машину у вашій операційній системі. Код, написаний таким чином, може працювати в будь-якій операційній системі, для якої існує реалізація віртуальної машини. Типовою мовою, що використовує це, є Java ( .jar).

Хоча теоретично "інтерпретовані" та "байт-коди" файли теоретично можуть працювати скрізь, щоб мати можливість це робити, вони повинні бути написані обережно - не покладатися на деяку поведінку / функціональність, яка існує лише в певній конкретній операційній системі. Далеко не всі вони мають ідеальну агностичну систему.


Хочете розробити формати файлів? наприклад, двійковий та байт-код, який можна редагувати шістнадцятковим редактором, інтерпретувати файли за допомогою звичайного текстового редактора.
Ханну

У той момент я не рекомендував би тим, хто має шукати цю відповідь, щоб "відредагувати" файл із шестигранним редактором. І навіть файли «простого тексту» загрожують небезпекою, я бачив багато скриптів Python, які спотворювали Windows » notepad.
ксеноїд

помилка інтерпретації від вашого імені. Пропозиція стосується уточнення вмісту файлів, а не прямої пропозиції про те, як насправді виконувати редагування.
Ханну

-1

розширення не залежать від того, чи буде програма працювати в певній ОС.
Наприклад, на linux всі виконувані файли у форматі ELF Executable та Linkkable Format.

У Linux ви можете отримати тип файлу з командою: file NameOfapplication

Чи додаток буде працювати в певній ОС, пов’язане з мовою програмування, якою він написаний, і чи компілюється він для певної ОС, і він підтримує бібліотеки цієї ОС.

Деякі мови, такі як python, Java, є сумісними між собою, оскільки вони не є мовами, які повністю компілюються, а компілюються в байт-код, який потім виконується інтерпретатором в ОС, на якому встановлені інтерпретатори. Сподіваюсь, це трохи допомагає

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.