mboost-dp1
unknown
#47
Totalt misfortsået. Jeg går netop udfra at man ikke skal implementere
hele kernen.
Hvis man skulle var det ikke emulation.
Jeg ved det faktisk ikke, men jeg er 99% sikker på at Wine ikke
emulerer NT kernen. Hvorfor skulel den dog det. Der er stort
set ingen programmer som bruger de funktioner. Alle bruger
Win32 API, som er det Wine emulerer.
kernel32, user32, gdi32 etc. og ikke et styre system men et API.
Din defination er ikke helt korrekt, da du går udfra at for at implementere win32 api'en er du nødt til at implementere kernen.
Totalt misfortsået. Jeg går netop udfra at man ikke skal implementere
hele kernen.
Hvis man skulle var det ikke emulation.
Emulation er ganske enkelt, når du får noget til at fungere som noget det ikke er, og det kan man ikke sige wine gør, for wine er en win32 api, det er ikke noget den lader som om. Du kan måske se wine som en windows emulator, men ikke som en win32 api emulator.
Jeg ved det faktisk ikke, men jeg er 99% sikker på at Wine ikke
emulerer NT kernen. Hvorfor skulel den dog det. Der er stort
set ingen programmer som bruger de funktioner. Alle bruger
Win32 API, som er det Wine emulerer.
kernel32, user32, gdi32 etc. og ikke et styre system men et API.
Reimplementeret Windows API + reimplementeret Windows kernel == ReactOS:
http://www.reactos.org/en/index.html
http://www.reactos.org/en/index.html
#51
Igen, efter din defination er alle implementationer, der ikke er originale jo emulering. Og du har ret, den emulerer ikke kernen, Wine ligger ikke skjul på at det ikke er windows, der er funktioner du kan kalde der vil fortælle dig at det ikke er windows du arbejder på.
Jeg vil påstå, at hvis wine er en emulator, så er IE's http implementation også en emulator, da den jo ikke fungerer på samme måde som de første implementationer af http. Hvis wine er en emulator, hvordan ville en implementation af win32 så se ud? Og du skal ikke påstå at du ikke kan implementere win32 api uden at implementerer win32 kernen, så er du ganske enkelt ude i et ordspil.
Hvis jeg skal præcisere lidt hvad jeg ser som en emulator, så er det at der skal være et underliggende lag, der efterligner noget andet, og det er der ikke i wine, det er klart at visse funktioner er implementeret på en måde der emulerer win32 kernens opførsel, da der ikke findes en linux ækvivalent, men det ser jeg nu bare som en alternativ implementation af den kernel funktionalitet.
Igen, efter din defination er alle implementationer, der ikke er originale jo emulering. Og du har ret, den emulerer ikke kernen, Wine ligger ikke skjul på at det ikke er windows, der er funktioner du kan kalde der vil fortælle dig at det ikke er windows du arbejder på.
Jeg vil påstå, at hvis wine er en emulator, så er IE's http implementation også en emulator, da den jo ikke fungerer på samme måde som de første implementationer af http. Hvis wine er en emulator, hvordan ville en implementation af win32 så se ud? Og du skal ikke påstå at du ikke kan implementere win32 api uden at implementerer win32 kernen, så er du ganske enkelt ude i et ordspil.
Hvis jeg skal præcisere lidt hvad jeg ser som en emulator, så er det at der skal være et underliggende lag, der efterligner noget andet, og det er der ikke i wine, det er klart at visse funktioner er implementeret på en måde der emulerer win32 kernens opførsel, da der ikke findes en linux ækvivalent, men det ser jeg nu bare som en alternativ implementation af den kernel funktionalitet.
#53
Ikke helt.
Pointen er at X og Y er på samme niveau.
Hvis Wine kun bruger syscall så vil jeg gerne kalde det en implementering.
Fordi NT kald og syscall er på samme niveau.
Hvis Wine transformer Win32 kald til kald af Xetellerandet,
så er det en emulering fordi Xetellerandet er på samme
niveau som Win32 men højere oppe end NT kald.
Det er da en dårlig sammenligning.
Det er implementeringer af en standard, det er ikke API'er
og er implementeret helt ens oven på sockets.
Det har jeg beskrevet ovenfor.
Jeg tvivler på at det er muligt at lave en Win32 implementering
på et "ikke dertil beregnet" styre system uden at det vil være
uhyggeligt instrusive.
Igen, efter din defination er alle implementationer, der ikke er originale jo emulering.
Ikke helt.
Pointen er at X og Y er på samme niveau.
Hvis Wine kun bruger syscall så vil jeg gerne kalde det en implementering.
Fordi NT kald og syscall er på samme niveau.
Hvis Wine transformer Win32 kald til kald af Xetellerandet,
så er det en emulering fordi Xetellerandet er på samme
niveau som Win32 men højere oppe end NT kald.
Jeg vil påstå, at hvis wine er en emulator, så er IE's http implementation også en emulator, da den jo ikke fungerer på samme måde som de første implementationer af http.
Det er da en dårlig sammenligning.
Det er implementeringer af en standard, det er ikke API'er
og er implementeret helt ens oven på sockets.
Hvis wine er en emulator, hvordan ville en implementation af win32 så se ud?
Det har jeg beskrevet ovenfor.
Og du skal ikke påstå at du ikke kan implementere win32 api uden at implementerer win32 kernen, så er du ganske enkelt ude i et ordspil.
Jeg tvivler på at det er muligt at lave en Win32 implementering
på et "ikke dertil beregnet" styre system uden at det vil være
uhyggeligt instrusive.
#54
Det er jo netop det den gør, givet er det selvfølgelig at wine er nødt til at implementere funktionalitet der er i windows kernen men ikke i linux kernen, i userspace. Men er det ikke bare en forskel i implementation?
Jeg forstår ikke du mener, krydsning af lag er vigtigt. Jeg vil påstå at en implementation er komplet når du kan bruge funktionerne i api'en og de giver de rigtige resultater. Hvis det er rigtigt, så vil rsync api'en jo f.eks. ikke kunne implementeres på windows, da de rigtige funktioner i kernen ikke findes (de skal efterlignes i userspace).
Fra mit synspunkt snakker man først om en emulering, når du har et helt mellemlag under hvad end du emulerer.
Du kan selvfølgelig snakke om at enkelte dele af api'en skulle emuleres, men api'en i sig selv er en implementation der benytter sig af emulering. Når man idag snakker om en emulator, mener jeg man snakker om et program hvor størstedelen af funktionerne er emuleret.
Jeg forstår heller ikke helt, mener du at man kun kan "implementere" en standard, men ikke implementere en ikke standardiseret api? Eller misforstod jeg?
Du har iøvirgt ret, mit eksempel var dårligt :
Nu er det jo iøvrigt ikke så vigtig en diskussion, verden kan nok leve videre om det bliver kaldt en emulator, men synes den er interessant.
Det er jo netop det den gør, givet er det selvfølgelig at wine er nødt til at implementere funktionalitet der er i windows kernen men ikke i linux kernen, i userspace. Men er det ikke bare en forskel i implementation?
Jeg forstår ikke du mener, krydsning af lag er vigtigt. Jeg vil påstå at en implementation er komplet når du kan bruge funktionerne i api'en og de giver de rigtige resultater. Hvis det er rigtigt, så vil rsync api'en jo f.eks. ikke kunne implementeres på windows, da de rigtige funktioner i kernen ikke findes (de skal efterlignes i userspace).
Fra mit synspunkt snakker man først om en emulering, når du har et helt mellemlag under hvad end du emulerer.
Du kan selvfølgelig snakke om at enkelte dele af api'en skulle emuleres, men api'en i sig selv er en implementation der benytter sig af emulering. Når man idag snakker om en emulator, mener jeg man snakker om et program hvor størstedelen af funktionerne er emuleret.
Jeg forstår heller ikke helt, mener du at man kun kan "implementere" en standard, men ikke implementere en ikke standardiseret api? Eller misforstod jeg?
Du har iøvirgt ret, mit eksempel var dårligt :
Nu er det jo iøvrigt ikke så vigtig en diskussion, verden kan nok leve videre om det bliver kaldt en emulator, men synes den er interessant.
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

- Forside
- ⟨
- Forum
- ⟨
- Nyheder
Gå til bund