PC vs. MAC i inne systemy - ta sama architectura?

0

Słyszałem, że są komputery MAC, np. MacBook z procesorem architektury x86.

Mimo to ponoć nie da się zainstalować systemów operacyjnych "na krzyż", czyli na Mac zainstalować Windows, a na PC zainstalować MacOS, mimo, że oba urządzenia mają architekturę x86. Czy może ktoś potwierdzić, czy to prawda? Jeżeli tak, to gdzie jest przyczyna?

Natomiast plik .COM zawiera czysty kod maszynowy dla procesora x86 (w odróżnieniu od pliku .EXE). Dlaczego więc taki plik da się uruchomić tylko w systemie Dos i Windows, a w Linuxie, czy BeOs już się nie da mimo tego samego komputera? Co więcej, niektóre stare programy pisane pod DOS działają pod XP kulawo lub nie chcą działać. Niby mamy sprzęt zgodny z wymogami programu (procesor o architekturze x86, po pod taki procesor program był kompilowany), ale do tego jest potrzebna "emulacja" DOS (nawet w XP jest gorsza, niż ta, jaką oferuje www.dosbox.com).

To w takim razie, jak kompiluje sie napisany program, to program kompiluje się pod konkretny procesor, czy pod konkretny system operacyjny?Bo w szkołach uczą, że program kompiluje się pod procesor, co sugerowałoby, że można go uruchomić bez względu na używany system operacyjny, ale to przeczy temu, co napisałem powyżej.

W takim razie z tego wychodzi wniosek, że program kompiluje się nie pod procesor (albo tak nie do końca), tylko pod konkretny system operacyjny.

Czy może ktoś rozwiać te wątpliwości?

0

Są komputery MAC z procesorem Intela x86, ale mimo wszystko, system operacyjny nie jest do końca przystosowany do tej architektury. Nie mówiąc już o programach, wtyczkach itd. Na normalnym PC i tak nie da się zainstalować Mac OSXa, najprawdopodobniej z powodu zabezpieczeń bądź kompatybilności z urządzeniami.

Na Macach z procesorami Intela można od pewnego czasu instalować Windowsy, ale Apple jakoś zbyt entuzjastycznie do tego pomysłu nastawione nie jest ;).

To, że pliki .com zawierają wyłącznie czysty kod nie jest prawdą. Zwłaszcza pierwsze wersje były bardzo proste, ale każda późniejsza była bardziej skomplikowana.

Dlatego jednym z powodów jest sama architektura pliku wykonywalnego, czyli konkretnie określone co się gdzie w nim znajduje itd. Inaczej wygląda plik dla Windows (format PE), a inaczej dla Uniksów (COFF). Kolejna, chyba najważniejsza sprawa to wywołania systemowe. Dla każdego systemu będą się różnić, tego nie da się zmienić. A gdy ich nie ma, to najczęściej mówimy to plikach, które do uruchomienia potrzebują maszynę wirtualną, np. Java bądź .NET (chociaż pliki .NET to generalnie rozbudowany PE).

W takim razie z tego wychodzi wniosek, że program kompiluje się i pod architekturę procesora i pod system ;).

Jeżeli gdzieś się mylę, to proszę bardzo o poprawienie mnie, nie czuję się zbyt dobrze w tych zagadnieniach (ale starałem się jak mogłem ;)).

0

Windows się da spokojnie zainstalować na Makach, tak jak i Linuksa na przykład. A i MacOSX przy odrobinie samozaparcia da się zainstalować na komputerze innej firmy niż Apple. Da się znaleźć w internecie odpowiednie poradniki oraz przygotowane modyfikacje systemu z odpowiednimi sterownikami (bo brak sterowników to główny problem w instalacji MacOSX na innych komputerach niż te od Apple). I Apple może zbyt entuzjastycznie nastawione do instalacji Windows na Maku nie jest, ale mechanizm do tego stworzony, BootCamp jest standardowo w systemie, i działa. Ba, nawet czasem reklamują to jako zaletę, że można mieć Windows na Maku ;-)

Moja uwaga: dlatego też od kiedy Apple produkuje komputery oparte o "zwykłe" pecetowe podzespoły nie istnieje już coś takiego jak Mac vs. PC. Nowe Maki to są zwykłe PC - jedyna większa różnica to EFI zamiast BIOS-u. I oczywiście w ich reklamach Mac vs. PC to tak naprawdę Mac OS X vs. Windows.

A do rzeczy: programy kompiluje się pod system i pod procesor. Każdy system inaczej traktuje pliki wykonywalne, każdy procesor ma inne zestawy instrukcji, każdy system ma inne wywołania swoich API.

0
Rev.pl napisał(a)

Na normalnym PC i tak nie da się zainstalować Mac OSXa, najprawdopodobniej z powodu zabezpieczeń bądź kompatybilności z urządzeniami.

przede wszystkim z powodow nie kompatybilnosci procesora x86 z systemem operacyjnym Mac OS. PowerPC uzywa formy big endian a intel little endian.
Mozna sobie za to system zwirualizowac i dzieki produktom takim jak: VMware, VirtualBox, MacOnLinux i innych mozna miec odpalone np. 2 systemy operacyjne rownoczesnie.

0

No tak, ale mówiliśmy już o Mac OS X dla platformy x86 i to jego miałem na myśli.

0
Rev.pl napisał(a)

To, że pliki .com zawierają wyłącznie czysty kod nie jest prawdą. Zwłaszcza pierwsze wersje były bardzo proste, ale każda późniejsza była bardziej skomplikowana.

Może nie wyraziłem się dokładnie, chodziło mi o to, że .COM to jest odwzorowanie zawartości pamięci RAM od adresu 100h ort!, tyle, ile duży jest ten plik. Potwierdza to fakt, że kiedyś bawiłem się darmowym programem Advanced Fullscreen Debugger, wczytałem do niego plik COM jako zapisany kod ASM w postaci wykonywalnej od adresu 100h i uruchomiłe. Plik COM działał dokładnie tak samo, jak odpalony w normalny sposób (eksperyment przeprowadzałem w emulatorze DosBox).

mwili napisał(a)
Rev.pl napisał(a)

Na normalnym PC i tak nie da się zainstalować Mac OSXa, najprawdopodobniej z powodu zabezpieczeń bądź kompatybilności z urządzeniami.

przede wszystkim z powodow nie kompatybilnosci procesora x86 z systemem operacyjnym Mac OS. PowerPC uzywa formy big endian a intel little endian.
Mozna sobie za to system zwirualizowac i dzieki produktom takim jak: VMware, VirtualBox, MacOnLinux i innych mozna miec odpalone np. 2 systemy operacyjne rownoczesnie.

Chodziło mi o komputery Apple o architekturze Intel x86, bo tylko na takich można rozważać próbę zainstalowania Windows, czy Linux. Natomiast PowerPC ma zupełnie inną architekturę i wtedy na pewno nie da się uruchomić systemu i oprogramowania przeznaczonego dla x86.

0

przeciez napisalem o tym ze powerPC i intel maja inna architekture (fakt, ze nie doslownie), napisalem tez o mozliwosci "wirtualizacji" komputera. Przejrzyj sobie np. to http://www.zisman.ca/Articles/2004/VPC7.html (XP na PowerPC G4)

0

Napisałeś, że Mac OS X nie jest kompatybilny z architekturą x86, co nie jest całkowicie prawdą. I nie mówię tutaj o wirtualizacji.
http://en.wikipedia.org/wiki/Apple_Intel_transition
Napisałem za to, że używanie Mac OS X na procesorach x86 (Intele w MacBookach) może być uciążliwe, z tego powodu, że nie wszystkie istniejące aplikacje mają wersje pod x86. Za to coraz więcej programów ma tzw. uniwersalne binarki, składające się z dwóch części, kodu pod PowerPC i x86 uruchamianego w zależności od architektury procesora.

A do uruchomienia Windowsów pod MacBookami z Intelami Apple oferuje specjalne narzędzia (i również nie jest to wirtualizacja).

Krótko mówiąc, Apple od pewnego czasu idzie w stronę x86. Sądzę, że jedynie kwestią czasu jest udostępnienie MacOS na normalne PC z x86.

0

Sądzę, że jedynie kwestią czasu jest udostępnienie MacOS na normalne PC z x86.

Nie. W tym momencie MacOS X stałby się zwykłym systemem operacyjnym, który borykałby się z każdym problemem jaki ma jakikolwiek system "ogólny", czyli sterownikami, zasobami, konfliktami, różnym sprzętem (niedopasowanym, uszkodzonym itd.). Strzał w stopę dla Apple - raz by stracił status systemu "dla wyjątkowych ludzi", dwa straciłby status systemu "niezawodnego, stabilnego, przewidywalnego, bezproblemowego". System tylko dla komputerów o przewidywalnej architekturze jest dla tej firmy lepszy.

Co do samego OSX - istnieje coraz większe prawdopodobieństwo, że jego następna wersja (10.6) nie będzie już dostępna dla PowerPC. Tak mają obecne wersje beta.

0
Ktos napisał(a)

Co do samego OSX - istnieje coraz większe prawdopodobieństwo, że jego następna wersja (10.6) nie będzie już dostępna dla PowerPC. Tak mają obecne wersje beta.

Dlaczego tak? Jak się weźmie kod źródłowy, to można skompilować na każdą platformę (architekturę), jaką się chce, o ile istnieje kompilator. Wobec tego moim zdaniem nie mozna wykluczyć, że 10.6 nie będzie dla PowerPC. A jak się testuje system pod kątem funkcji i możliwości to wystarczy jedna architektura.

Co do niezawodności to hasła "niezawodny", "stabilny" itd nie mają szczególnego znaczenia, bo każdy system na każdym komputerze prawidłowo skonfigurowany będzie te założenia spełniać. Inną sprawą są wirusy, backdoory, na które Windows jest bardzo podatny.

0
Ktos napisał(a)

Nie. W tym momencie MacOS X stałby się zwykłym systemem operacyjnym, który borykałby się z każdym problemem jaki ma jakikolwiek system "ogólny", czyli sterownikami, zasobami, konfliktami, różnym sprzętem (niedopasowanym, uszkodzonym itd.). Strzał w stopę dla Apple - raz by stracił status systemu "dla wyjątkowych ludzi", dwa straciłby status systemu "niezawodnego, stabilnego, przewidywalnego, bezproblemowego". System tylko dla komputerów o przewidywalnej architekturze jest dla tej firmy lepszy.

Aż się ciśnie na usta przykład systemu, który pomimo "nieprzewidywalnej" architektury PC działa bardzo stabilnie, ale pewnie ktoś się zaraz odezwie, że GNU tudzież BSD to syf, cały czas się zawiesza, itd, a ja żyję w wyidealizowanym świecie... Na PC naprawdę da się zrobić stabilny system.

0

A mnie zastanowilo jedno stwierdzenie w tym wątku. Od kiedy to VirtualBox i inne podobne potrafią emulować Maki? Slyszalem tylko o jednym (nieoficjalnym) emulatorze Maka na PC, ale bylo to raczej ciekawostką z powodu drastycznie niskiej wydajnosci. Niestety nie kojarze teraz jego nazwy.

0

moze chodzilo o PearPC,
tu jest porownanie roznych maszyn wirtualnych: http://en.wikipedia.org/wiki/Comparison_of_virtual_machines

1 użytkowników online, w tym zalogowanych: 0, gości: 1