Цитата:
metton:
Так а почему тогда скомпилированные ассемблером под Вынь не работают на Линуксе даже когда один и тот же проц? В этом и есть вопрос
|
В каждой операционной системе свои объекты, термины и понятия.
Сейчас поясню. Например, понятия
Process и
Thread.
В винде это одно, а в юникс-системах это другое.
Или еще пример: в винде для переключения между потоками (threads) используется вытесняющая многозадачность (preemptive multitasking
многозадачный режим с приоритетами - обеспечивает операционной системе возможность захвата процессора в любой момент времени, независимо от состояния работающих приложений).
Список можно продолжать бесконечно.
Всё, что связанно с ядром операционной системы - является проблемой при портинге програм с одной ОС на другую.
Для решения подобных проблем, используется концепция виртуальных компьютеров (virtual mashines).
Пример: Java (бинарный код будет исполняться в любой ОС, где есть java-virtual mashine) или .NET Framework (бинарный код будет исполняться в любой ОС, где есть CLR).
Virtual Mashines абстрагируют понятия про которые я говорил (потоки, процессы и т.д.).