mboost-dp1

unknown

Anonyme udviklere: Longhorn ikke baseret på .Net

- Via Microsoft-watch - , redigeret af amokk

Mange havde forventet, at Longhorn ville blive bygget ovenpå .Net frameworket, men ifølge Microsoft Watch siger nogle udviklere, som gerne vil være anonyme, at det gør det ikke. Det forventes dog stadig, at .Net kommer med sammen med Longhorn på en eller anden måde, men ikke som en del af dets core.

I følge en af udviklerne var den oprindelige plan at basere mange af komponenterne i Longhorn på den næste version af .Net frameworket.

En anden udvikler har hørt noget lignende og siger også, at .Net ikke er modent nok til implementation af operativsystemer. En tredje kilde siger, at det var meningen, at Longhorn skulle udvikles i C# og være “managed code”, men “managed code” krævede maskiner, som man ikke vil kunne få før om 5 år eller mere, så nu er man igang med at omskrive det hele.

En af udviklerne mener, at en af fordelene ved, at Longhorn ikke bliver baseret på .Net er, at udviklere ikke behøver at skifte til .Net, hvis de vil bruge nogle af de nye Longhorn features.





Gå til bund
Gravatar #1 - loadet
28. maj 2005 01:33
så fik richard grimes aligevel ret
Richard Grimes on .NET - February 1, 2005
Gravatar #2 - andreasg
28. maj 2005 02:06
Bare mod mig som troll, men nu er Longhorn igen et skridt tættere på at være det samme som Windows XP. Hvad bliver den næste feature der ryger? Aero?
Gravatar #3 - decoder
28. maj 2005 02:19
Spørgsmålet er kun hvor hårdt longhorn flopper. Det virker som om microsoft står med vaporware på hånden. Men det kan måske være en godting, et produkt der virkeligt viser microsoft, at for at få folk til at opgradere, så skal der præsteres noget. Se på Apple f.eks. de smider en ny update ca. hver 18 måned, til fuld pris. Folk køber det, fordi der er noget nyt og spændende hvergang.

Det kunne Microsoft lære noget af.
Gravatar #4 - Redeeman
28. maj 2005 06:03
det er lidt mærkeligt det der står her, der står at det ikke er klart til at implementere os, men... der er jo ikke snakke om kernen, men userspace, og .net runtime'en er fint god nok til at blive brugt til userspace..
Gravatar #5 - remind
28. maj 2005 06:49
www.ReactOS.com anyone?
Gravatar #6 - Morell
28. maj 2005 07:25
hvad er "managed code"?
Gravatar #7 - Mort
28. maj 2005 08:09
#6: Managed kode er kode som mens det kører bliver "kompileret" i hukommelsen. Det betyder at koden kan optimeres til den computer det kører på, men også at programmet er langsommere at køre indtil alle de dele man bruger er "kompileret".
Gravatar #8 - Mazon
28. maj 2005 08:13
#7 ahva?
Managed code er "bare" kode der kører under .net's VM, og kan derfor styres mht. til adgang til resourcer. Dermed kan VM'en styre hvad du må og ikke må. Der er altså et lag uden om koden som overvåger hvad selve koden gør, modsat på nuværende måde hvor kode bare gør hvad det har lyst (næsten).
Gravatar #9 - quin
28. maj 2005 08:15
#7
Tror vist at du forveksler managed code med en virtuel maskine.
Managed code betyder at programmet bliver indkapslet i forhold til resourser, f.eks. kan det ikke læse og skrive direkte i hukommelses områder uden for dens tildeling.

EDIT:
#8 slog mig :-)
Gravatar #10 - kemo
28. maj 2005 08:36
#7, #8, #9
Okay nu er jeg forviret, hvad er forskellen på managed code og VM, hvis det da overhoved har noget med hinanden at gøre?
Gravatar #11 - sKIDROw
28. maj 2005 08:44
Longhorn er begyndt at lyde som Windows XP SP3/4?... ;)
Altså efterhånden med så få nyskabende ting med fra starten, at det nemt kunne inkluderes via en servicepack istedet for...

Humoristiske sjæle er også så småt begyndt, at kalde den for Shorthorn. Men hvor interessant / attraktiv den bliver / er vil jeg lade være op til folk selv at afgøre... ;)
Gravatar #12 - Hack4Crack
28. maj 2005 08:55
#11
Vi skal jo ikke glemme at:

Windows NT (4.0)
Windows 2000 (5.0)
Windows XP (5.1)
Windows 2003 (5.2)
Windows Longhorn (6.0)

Tror næppe at Windows Longhorn kommer til at ligne Windows XP, sagen er om nogen vil bruge penge på at opgradere!

Men som WinBeta.org skriver: The 'Dirty Little Secret' About Longhorn så har de ret :)
Gravatar #13 - Onde Pik
28. maj 2005 09:08
#8

Faktisk ikke rigtig. Managed code er ikke specifikt for MS .NET. Desuden kan du ikke definere det som noget der kører på en virtuel maskine. Du kan sagtens kode unmanaged code i .NET og det kører skam stadig på .NET VM.

Den største forskel på .NET managed code og almindelig kode er som #9 siger hvilket abstraktionslag der er mellem programøren og maskinen i form af memory management og sådan nogle ting.

#10

Nej ikke nødvendigvis. Både Java og .NET har managed code, og både Java og .NET har en VM (af en art... .NET er nu meget anderledes end Java på det punkt så det svider lidt at kalde det en VM) og de 2 ting hænger sammen, men i teorien er de ikke afhængige af hinanden.
Gravatar #14 - sguft
28. maj 2005 09:37
Mon ikke stadig WinFX kommer til at erstatte Win32 API'et og .NET derfor stadig får en central rolle. Jeg vil da også tro at både Indigo og Avalon stadig udvikles op imod .NET, det ville virke underligt at lave så radikal en ændring på nuværende tidspunkt.

Spørgsmålet er hvad der helt præcist henvises til med "komponenter" i Longhorn og hvad der opfattes som værende "en del af core".
Gravatar #15 - mathiass
28. maj 2005 10:20
#13 Hvordan er Java og .NET så meget anderledes? De har begge en fortolker som sørger for at fortolke bytekode til det system det kører på, og meget af denne bytekode kan oversættes 1:1 mellem Java og .NET. Jeg er bare nysgerrig.

#11 At hæve versionsnummeret siger vel ikke så meget om hvor stor forskellen er på to systemer? Hvis MS havde haft lyst kunne de da sagtens have kaldt Win2k for 5.0 og WinXP for 6.0.
Gravatar #16 - henrikmk
28. maj 2005 10:33
#3

Apple har også den fordel at de lavede tingene rigtigt fra starten af og OSX har haft lang tid til at modne i NextSTEP formen op igennem 90'erne. Derfor er det nemmere at udvide og skabe nye og stærke funktioner med.
Det var ved at gå galt for dem med MacOS7, 8 og 9, hvor de faktisk sad i samme situation med Copland, et nyt OS der skulle bryde de tidligere restriktioner, men aldrig kom nogen vegne, da det blev dømt for stort og svært at lave. De endte med at droppe det og udgive MacOS8 og 9, der lider af samme problemer som Windows: Langsommere og mere komplekst at arbejde med for hver version.

OSX er lige modsat.

Longhorn kunne have givet MS en kæmpe fordel, men ambitionerne ser ud til at vælte dette. Hvis de istedet havde givet sig til at starte forfra med et OS på linje med XP i 2000, med udgangspunkt i sikkerhed, havde skidt højt og flot på kompatibilitet (ja, risikabelt, men...) og havde brugt 3-4 år på det i stedet for XP SP2, så havde situationen nok været helt anderledes for MS idag.
Gravatar #17 - pulven
28. maj 2005 10:53
de skal jo have solgt deres produkter, og indtil videre går der ihvertfald 2 år før vi ser den på gaden.. (ikke?) til den tid kan det jo godt være at winXP ikke er tilstrækkelig mere. Og de så lige pludselig trækker en kanin op af hatten.. en ting er ihvertfald sikkert, de har aldrig været dårlige til at sælge deres produkter.. så.. dødsdøm den nu ikke så hurtigt..
Gravatar #18 - mrmorris
28. maj 2005 11:18
#15 Bortset fra, at så let går det ikke. Selve sproget adskiller sig. I .NET er DateTime og long f.eks. value/primitive typer mens i Java er Date og Long reference typer. I Java findes ingen statiske konstruktører eller pointere eller mulighed for at kalde Windows legacy kode.
Også API'et er så anderledes at det ikke umiddelbart lader sig gøre med mindre man er villig til selv at lave et Java kompatibelt library på .NET og omvendt. (Det er ingen villig til!)

Mon ikke stadig WinFX kommer til at erstatte Win32 API'et...

Næppe, alt... jeg gentager ALT i Windows bruger det famiøse Win32/64 API og således komplementerer WinFX blot det gamle. Det havde været rart med nye rene implementationer men Windows er for stort og komplekst (og skal virke med eksisterende legacy kode) så vi må nok desværre berede os på en ordentlig lagkage af et OS.

Man kan forestille sig, at om ~5 års tid tager WinFX helt over, ligesom man så det med DOS i Win95 til nu hvor det er en simpel emulering.
Gravatar #19 - mathiass
28. maj 2005 12:01
#17 Jeg tror nok at de skal få det solgt. Sådan noget som Windows sælger man ikke på teknisk indsægt eller teknisk overlegenhed. Det sælger man med linjer som "det sikreste Windows til dato" eller "nye multimedieudvidelse gør det nu muligt at [indsæt selv et eller andet]". Forstå mig nu ret, det resterende 95% af Windows-brugerene er ligeglade med WinFX, .NET og WinFS.
Gravatar #20 - DUdsen
28. maj 2005 12:22
#13
Har .Net version 2 overhovedet JIT teknologi indbygget eller er det en ren emulator
#15 Suns virtuelle maskine ligner i dag mere en kompiler end en virtuel maskine og gcc folkne er godt igang med at smide JRE'et af helvede til og lave et system der oversætter java direkte til
Gravatar #21 - Onde Pik
28. maj 2005 14:13
#15

Det er faktisk kun Java der har en fortolker indbygget i deres JVM. Og det er også kun Java der oversætter koden til bytecode, hvor .NET bliver oversat til et mellemsprog (IL) der minder lidt om en slags pseudo assembly kode. Mellemsproget er et rigtigt sprog, og det betyder også at det er meget let integrerbart. Du kan f.eks kode noget funktionalitet i c# eller vb.net, og den compilerede kode vil i teorien være den samme ligegyldig hvad hvad du valgte. (Naturligvis hvis man kan regne med at man bruger den samme kodestil) Du kunne vælge at kompilere den til en DLL-fil og så ville du i alle .NET sprog frit kunne kalde offentlige metoder i den compilerede kode. Det kan man ikke med Java, dels fordi java bytecode ikke er et rigtigt sprog.

Når koden er blevet compilet (Jave til bytecode, .NET til mellemsproget MSIL) kan det afvilkes hvis man har et runtime enviroment som Sun kalder det eller framework som MS kalder det. Her er der også forskel på hvordan det behandles. Det er jo her java fortolkeren kommer ind i billedet. Bytecode skal fortolkes og oversættes før det kan udføres. MSIL skal bare oversættes.

.NET kode er faktisk extremt hurtigt at afvikle i forhold til Java (selvom som #20 siger at der er sket meget siden Javas fødsel) men det bruger tilgengæld en hel del hukommelse.
Gravatar #22 - SmackedFly
28. maj 2005 14:41
Et system baseret på managed code kunne være lidt af et kup for MS, de kunne løse den største designfejl i Windows med et slag. I et MS styresystem kan alle processer der kører under samme bruger (mener kun det er samme bruger), manipulere hukommelsen for alle andre applikationer der kører som den bruger direkte. That's scary!

Det betyder reelt set at du kan have en applikation der sidder og overvåger hvad en anden applikation laver, og hijacke programmet når det når et vist status, eller manipulere forskellige ting. Hvis .Net kunne fixe det for MS, kunne det være sjovt for dem, for de kan ikke selv fixe det uden at fjerne bagudkompatibiliteten.
Gravatar #23 - Onde Pik
28. maj 2005 15:00
#22

Nej det passer sgu ikke. Det er i hvert fald det første jeg nognesinde har hørt om en sådan fejl, og jeg kan ikke forestille mig at jeg ikke ville have hørt om det.

Hvor har du læst det? Windows har faktisk i alle NT version haft beskyttede adresserum både i bruger og kerne mode, jeg kan ikke forestille mig at du har ret.

I DOS var der ikke denne distance men... nej jeg er sgu ret sikker på at du tar fejl.
Gravatar #24 - SmackedFly
28. maj 2005 15:14
#23

Du må meget gerne fortælle mig hvordan samtlige trainers til windows virker idag...:)
Gravatar #25 - DUdsen
28. maj 2005 16:02
#21 ??
MSIL er vel ikke decideret manskinkode eller er det?
Enten bruger fungere .net som en slags kompiler eller også kommer den med en fortolker.
Perl der normalt set er et fortolket sprog kompiler så vidt jeg ved tingene til maskinkode inden der sker noget som helst andet, er det sådan MS.Net virker eller?

SUN's java gør svjv begge dele altså den har en fortolker men den kompilere også tingene.
I teorien giver det lidt overhead men det betyder også at java teoretisk set vil kunne knuse tal meget bedre end .net, net
op fordi Sun Hotspot kan optimere maskinkoden på en måde MS.Net ikke kan tilade sig fordi den kun får et forsåg og at den har travlt!

En anden forskel er vel at java er en selvstendig platform der lever i sit eget miljø mens .Net er på en anden måde er den slags udvidelse til systemet.

Min fornemmelse ved at tage tid på java og .net baserede programmer er at java ikke er stort langsommere, men det er selvfølgeligt ikke sant med alle JRE'er.
Gravatar #26 - casperj
28. maj 2005 17:38
#25
MSIL er "typestærkt objektorienteret assembler kode":
MSIL includes instructions for loading, storing, initializing, and calling methods on objects, as well as instructions for arithmetic and logical operations, control flow, direct memory access, exception handling, and other operations


Når du skriver noget kode i .Net bliver det 1) kompileret til en Assembly som indeholder MSIL og noget metadata. Når koden så 2) skal eksekveres af en Runtime Host (såsom Windows, Mono, SQL2005, ...) bliver koden 3) oversat til Native Code (= CPU specifik maskinkode) og 4) eksekveret JIT.

Det er den såkaldte "Managed Execution Process" som Microsoft benytter.

Den store styrke, som jeg ser det, ved .Net er at de på forhånd har indset at de ikke kan lave det perfekt udviklingsmiljø i første hug. Derfor har MS indført Side-by-Side Execution som muliggør at kode komplieret til .Net v.1.0 og snakke med kode udviklet til .Net v.1.1. Derudover kan flere versioner af samme assembly eksistere samtidigt på samme Runtime Host, hvilket én gang for alle gør op med DLL-Hell...

Håber det var svar på din undren - ellers skriver du bare igen ;)
#27 - 28. maj 2005 21:37
23 har ret, der er (selvfølgeligt) beskyttede adresserum mellem programmer.

Mht. 'managed kode', er det ikke en gammel nyhed at den virtuelle maskine har sin egen hukommelsesstyring? Det er vel netop en af grundene til at køre i virtuel maskine fremfor at oversætte koden til maskinsprog direkte.

Ikke at jeg har undersøgt det, men burde det ikke være logik at en virtuel platform har beskyttede adresserum programmerne imellem? Ellers er det jo livsfarligt at tilgå netbank vha. javaprogrammer.
Gravatar #28 - SmackedFly
28. maj 2005 21:50
#27

Ja beskyttede adresserum på den måde at du ikke bare kan bruge pointerearithemic el.lign. og derved ved et uheld komme ind i et andet programs hukommelsesrum. Men der er stadig operationer i win32 api'et der tillader dig at analysere og modificere hukommelsen på et program der kører på samme account.
Jeg skal ikke kunne sige om programmer på en eller anden måde kan flagge deres hukommelse så det er umuligt, men jeg ved muligheden findes, og den er bredt anvendt. Og igen, prøv at forklar hvordan en game trainer fungerer uden at kunne det.
#29 - 28. maj 2005 22:08
28: Nu ved jeg ikke helt hvad en 'spil trainer' er, men hvis kernen tillader det, så må man alt. Hvis man er tilpas kløgtig kan man godt indlæse et kernemodul hvorigennem man kan peek'e og poke som i Commodore 64 dagene, eller laver sin egen tastaturlæser hvis man godt vil kende adgangskoder osv. Om Windows allerede har en sådan bagdør i deres api'er ved jeg ikke, men i så fald er det en noget giftig funktionalitet sikkerhedsmæssigt.

I Unix kan man selvfølgelig godt sætte interkommunikationskanaler op mellem programmerne; det er fuldt tilladt.
Gravatar #30 - jeldtoft
29. maj 2005 11:03
Hvordan kan det være, at ingen har sagt noget lignende "fiskenet"???
Gå til top

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.

Opret Bruger Login