- Minto0
- Medlem ●
- International user
Jag har en fundering angående 64bitars Snow Leopard.
Jag har läst lite o inte fattat riktigt hur de hela fungerar, men som jag förstått de så måste man hålla nere "6" & "4" när man startar upp datorn för att de ska vara 64 bitars. Finns de inget sätt o se till att de alltid är 64bitars? Vad är de egentligen som händer när jag inte håller nere dom när jag startar? Är de fortfarande 64bitars i ngn form av mellanläge eller bara 32bitars då?
Väldigt tacksam om ngn kan ge lite kort förklaring för vad de hela går ut på
Det som händer när du håller inne 6 och 4 är att hela kärnan inklusive kärnmoduler körs i 64-bitarsläge. Anledningen till att det blivit så stor förvirring kring vad det innebär och varför Macarna inte gör det som standard är för att Mac OS X i mångt och mycket inte är som andra barn. Till skillnad från t. ex. Linux så är kärnan i Mac OS X inte ett enda program. Det innebär att vissa delar kan köra i 64-bitarsläge medan andra fortsätter i 32-bitarsläge. I många andra operativsystem måste du välja antingen eller.
Schemaläggaren, den del av kärnan som byter mellan och planerar hur mycket tid varje process ska få kör redan i 64 bitar och har gjort det sedan många år tillbaka. Det är en förutsättning för att alls kunna köra 64-bitarsprogram, annars hade den t. ex. inte kunnat spara undan innehållet i de utökade registren vid processbyte.
Men andra delar som till exempel hanterar I/O och kärnmoduler kan fortsätta i 32-bitarsläge utan någon större förlust för att inte bryta bakåtkompatibilitet. Den dagen alla kärnmoduler har byggts om för 64 bitar kan man börja köra hela kärnan i det läget, men fram till dess är det här en bra kompromiss.
Okay, Tackar för alla svar. Letade runt en hel del innan, men hittade inte allt jag sökte därav ny tråd.
Så tänkte mest sammanfatta de hela nu för o se att jag förstått allt rätt
Om jag INTE håller i 6 & 4 när jag startar upp, så kommer de bli i 64 bitars, men är bakåtkompatibelt med 32bitars applikationer.
om jag faktiskt håller i de, kan de bara köra 64bitars appar?!
Okay, Tackar för alla svar. Letade runt en hel del innan, men hittade inte allt jag sökte därav ny tråd.
Så tänkte mest sammanfatta de hela nu för o se att jag förstått allt rätt
Om jag INTE håller i 6 & 4 när jag startar upp, så kommer de bli i 64 bitars, men är bakåtkompatibelt med 32bitars applikationer.
om jag faktiskt håller i de, kan de bara köra 64bitars appar?!
Nej kerneln startar då i 32bitars modus och allt fungerar precis som förut.
När du håller in 6 och 4 vid starten startar kerneln i 64bitar modus. Då kan vissa kernels (drivrutiner för viss extra utrustning t ex skrivare, usb modem) inte ladda eftersom de måste skrivas om för 64bitar. Programmen påverkas däremot inte förutom de som kräver vissa drivrutiner.
//Rob
Det stora problemet är att drivrutiner slutar fungera.
T ex: skrivare, MIDI-keyboard, Externa ljudkort osv...
Det är sagt ovan men jag vill ändå understryka:
Gör INGENTING. Kör som vanligt.
Alla dina 64-bitars program körs ändå i 64 bitar (med tillgång till allt minne och sånt), samt att du slipper strul med program/drivrutiner som inte är kompatibla med 64 bitars kernel/kärna.
Du tjänar inget på att tvinga datorn till 64-bitars kärna. Det är kontrollerat och bevisat flera gånger.
Hur många bitar kerneln har och hur många bitar programmen har har inget med varandra att göra.
Hur många bitar kerneln har och hur många bitar programmen har har inget med varandra att göra.
På OS X.
På andra OS är det inte så här enkelt. Då måste man kanske ha en 64-bits-kärna för att köra 64-bits apps. Detta förvirrar nog en del användare som tror att operativsystem MÅSTE ha en sådan begränsning.
Detta måste alltså betyda att om jag lägger in 6GB i min maskin, och inte startar upp i 64-bit-kernel, så är ändå hela minnet tillgängligt...?
Ja, det stämmer.
för att förtydliga: om du är begränsad till 4GB i din maskin så beror det på hårdvaran (minneskontrollern) och inte kerneln.
vissa macar kan ju köra upp till 32GB under 10.5, och leopard-kerneln är definitivt 32-bit.
Min Macbook White Unibody (den som kom före den som just nu ligger ute på marknaden) borde väl rimligtvis ha en controller som klarar av att hantera mer än 4 GB.
Med andra ord så är det meninglöst att jag köper 8GB till min MacBook?
Nej, 8GB ska fungera bra. Precis som 8GB i MacBook Pro. Detta har inget med 32 eller 64-bits kärnor att göra.
Jag tror att Apple säger "max 4GB" för att de vill att du hellre ska köpa en Pro.
Om det nu är ovärt att starta Mac OS X i 64-bitarsläget, varför finns funktionen? Vid vilka tillfällen skulle någon behöva använda det?
Exempelvis när du vill hantera mycket I/O, vilket den är bättre på. Det är bland annat därför som den redan körs på Xserve där sådant ofta är viktigt. Vi hade kört den redan nu på andra maskiner om det inte vore för att det fortfarande finns många drivrutiner som inte fungerar och att de flesta inte har behov av de fördelar som finns.
Om det nu är ovärt att starta Mac OS X i 64-bitarsläget, varför finns funktionen? Vid vilka tillfällen skulle någon behöva använda det?
Så säg att du har 12gb ram. Och du kör Safari i 32bit-läge och kärnan i 32bit också. Då kan dessa tillsammans bara nyttja max 4GB av samma minne. Däremot din 64bit-app kan nyttja allt adressutrymme som är över de första 4GB RAMen. Men den processen är låst till att max kunna nyttja 4GB RAM pågrund av att kärnan inte kan adressera mer än 4gb av adressutrymme. Så du kan med detta exempel max adressera 8GB RAM. Vill du nyttja dina extra 4GB RAM får du starta ett till 64bit-applikation för detta.
Du måste köra en 64bit-kärna för att en process ska kunna nyttja ett större adressutrymme för varje enskild process. Detta gör att tex ett program som Photoshop, om du vill att photoshop ska kunna nyttja mer än 4GB RAM. Måste både kärnan och photoshop vara 64bit. Om båda är 32bit konkurrerar de om samma mängd ram och då får max nyttja 4GB tillsammans. Om photoshop är 64bit kan den nyttja 4GB RAM utan att behöva dela den med andra 32bits-processer eller 64bitsprocesser för den delen om du har tillräckligt med ram.
Så säg att du har 12gb ram.
...
Däremot din 64bit-app kan nyttja allt adressutrymme som är över de första 4GB RAMen. Men den processen är låst till att max kunna nyttja 4GB RAM pågrund av att kärnan inte kan adressera mer än 4gb av adressutrymme. Så du kan med detta exempel max adressera 8GB RAM. Vill du nyttja dina extra 4GB RAM får du starta ett till 64bit-applikation för detta.
Detta stämmer inte.
En 64-bits process som går i en 32-bits kärna kan utnyttja allt minne.
Apples 32-bits kärna begränsar inte adressutrymmet för 64-bits processer.
Om du inte kör feta servers behöver du inte fundera på 64-bits kärnor.
Detta stämmer inte.
En 64-bits process som går i en 32-bits kärna kan utnyttja allt minne.
Apples 32-bits kärna begränsar inte adressutrymmet för 64-bits processer.
Om du inte kör feta servers behöver du inte fundera på 64-bits kärnor.
Är du absolut säker detta? Jag skulle gärna vilja ha ett bevis för att OS X är det enda systemet som med en 32bit kärna kan tillåta en process att adressera mer än 4gb.
Edit: Du har helt rätt, sålänge programmet inte körs från kernel space så ska det fungera. Jag som inte är tillräckligt uppdaterad på Snow Leopard och är för insnöad i övriga operativsystem på marknaden. Jag få skylla på att jag inte kör OS X hemma utan är Linuxifierad.
Edit 2: Jag hittade bevis själv, se post längre ner.
AppleInsider | Road to Snow Leopard: twice the RAM, half the price, 64-bits
Här var en bra förklaring hur det går till, rätt bra då jag minns att jag läst det men tydligen glömt bort det och förväxlat det lite med hur det fungerar i tex Windows.