|
The desktop has the 16 bit offset - metro mode does not.
Back when the PC was invented everything was 8 bits hence why a byte is 8 bits, anyways in order to make a 16 bit register they took 3 - 8 bit registers and used the 2nd byte to point to the first and second half of the 16 bit register. It wasn't until Microsoft in 2003 did a paradigm shift to remove this problem. Once they did this all programs programmed with this offset simply can't work in the new paradigm.
If you like slow processing for simple tasks - go right ahead love the desktop.
You can not fix the desktop, just like you can't fix stupid for blindly being in love with the desktop.
|
|
|
|
|
Colborne_Greg wrote: You can not fix ... stupid for blindly being in love with the desktop.
|
|
|
|
|
Colborne_Greg wrote: Back when the PC was invented everything was 8 bits hence why a byte is 8 bits, anyways in order to make a 16 bit register they took 3 - 8 bit registers and used the 2nd byte to point to the first and second half of the 16 bit register. It wasn't until Microsoft in 2003 did a paradigm shift to remove this problem. Once they did this all programs programmed with this offset simply can't work in the new paradigm. You are very confused.
“But I don't want to go among mad people,” Alice remarked.
“Oh, you can't help that,” said the Cat: “we're all mad here. I'm mad. You're mad.”
“How do you know I'm mad?” said Alice.
“You must be," said the Cat, or you wouldn't have come here.” Lewis Carroll
|
|
|
|
|
|
No, it's absolutely incorrect.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
.net framework paradigm shift look it up
|
|
|
|
|
I've been programming now for 30 years. I know what the .NET framework is and use it daily at work.
The 8086 and successors use offsets to address memory, but were always 16-bit architectures, although the original 8088 had an 8-bit bus. The Z80 used register pairs to form 16-bit addresses. On the 8086, segment registers were used to address a segment, and other registers could register a 16-bit address relative to that offset. There was no third register involved. Look it up.
The 80386 introduced 32-bit registers, so addresses from there on are 32-bit. However it uses a paged architecture so that each process effectively has its own 32-bit address space. This magic happens between the Operating System (Windows, Linux whatever) and the Memory Management Unit (MMU). From an application programmer's perspective a process just sees a 32-bit space.
.NET Framework was not a paradigm shift. It simply created a virtual machine running on top of Windows, it relies as much as any program on the CPU's addressing. VMs have been in use for decades: Pascal often compiled to P-Code - a byte code format. Smalltalk used a full object-oriented VM. Java used a bytecode very similar to .NET. Microsoft introduced .NET to compete with Java, but it was no paradigm shift - just (to my point of view) a better VM than Java's. Smalltalk was a paradigm change - it was the first pure object-oriented language and revolutionised approaches to software. .NET could still learn a lot from Smalltalk and similar languages. Indeed I believe some LISP implementations used a VM so it probably has a longer history still.
The use of .NET has absolutely nothing to do with the addressing scheme used by the underlying hardware - indeed .NET actually compiles (using a Just-In-Time or JIT Compiler) to native code that is cached and used for subsequent calls. It does this at a cost of efficiency compared to native code, but as most app's spend more time waiting for networks/disks/input this is not of particular concern, unless you are writing leading-edge programs such as leading-edge games, intensive graphical applications or indeed VMs or languages.
Wikipedia has plenty of information on these topics.
X86 Memory Segmentation[^]
Virtual Machines[^]
JIT Compilation[^] - .NET is a Process Virtual Machine in the terms used here.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Its called the flat memory model
and until 2003 no continuous memory system exited - just deal with your lack of knowledge - k!
|
|
|
|
|
I'm sorry but you really don't know what you're talking about.
Intel 80386[^]
Note the first line: The Intel 80386 ("eighty-three-eighty-six"), also known as the Intel386, i386, or just 386 ("three-eighty-six"), was a 32-bit microprocessor introduced by Intel in 1985.
And later: The protected mode which debuted in the 286 was extended to allow the 386 to address up to 4 GB of memory.
Also check their entry on Windows NT[^] "NT was the first fully 32-bit version of Windows" and was released in 1993.
What .NET introduced (to Windows programming) was a Garbage Collected runtime - that's the only difference in terms of memory model. However garbage collection was originally introduced by LISP in the 1950's and was used by Java, and was also used by Smalltalk, Java, JavaScript and many other languages before .NET.
Note that every post I've made in this discussion has been well referenced. Yours haven't included a single reference. I'm not surprised.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
X86 Segmented memory model:
Implemented in original Intel 8086, 8088, 80186, 80286 and supported by 80386 and all subsequent x86 machines through to present day Pentium and Core 2 processors. This memory model has remained ever since in the x86 machines, which now provide multi-mode operation and rarely operate in the compatible segmented mode anyway.[clarification needed] See x86 memory segmentation for details.
Within the x86 architectures, when operating in the real (compatible) mode, physical address is computed as:[2]
Address = 16 × segment + offset
(i.e. The 16-bit segment register is shifted left by 4 bits and added to a 16-bit offset, resulting in a 20-bit address
the memory model Pentium Pro and newer x86 CPUs use in 32-bit addressing mode when addressing memory using 36-bit addresses
Flat memory model or linear memory model:
Refers to a memory addressing paradigm in which "memory appears to the program as a single contiguous address space."[1] The CPU can directly (and linearly) address all of the available memory locations without having to resort to any sort of memory segmentation or paging schemes.
Sorry flat memory model has been around along time, though it wasn't implemented in the intel world until after amd's x64.
The JIT allows applications to be compiled for each machine its to be run on before runtime to optimize the program so it can run on a lot of architectures.
The JIT writes machine code on the spot, if the machine was made since 2003 it will use the flat memory model and will avoid using the paged memory model that used the 36bits to utilize a true 64 bits --- on a tangent the windows XP 64 bit edition only used 54bits because of the offset issue.
Therefore the machine code Microsoft wrote for C# is perfected in terms of memory management.
modified 11-Feb-14 4:26am.
|
|
|
|
|
Windows does not use a flat memory model (thankfully), it uses a paging model that isolates each process from other process' memory. However, within Win32 code, the segment registers are mostly set to 0 (with minor exceptions for thread local storage and exception handling). Of course, they do not refer to physical address 0 - that would be silly as each process would then be able to tread all over other processes memory.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Windows 8 doesn't have the 36 bit addressing is the point, and its the desktop that uses the Win32 code not metro mode.
|
|
|
|
|
I created a program a call Unidex; a marshalled memory space that serializes the data for backup.
A type of cloud non SQL database that is addressing 200 GB of ram for a single program, the speed is insane.
|
|
|
|
|
Any links to further info on that?
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
I am working on User account control, I have been trying to release it for the last few months.
Otherwise all I have is a facebook page name Unidex Software with my first GUI that uses the backend.
|
|
|
|
|
|
I don't know if you've been following my posts and this thread, just thought you may be interested to see ignorance at work...
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
Wow, there are so many errors in so few lines I suspect you intended to post this to "The Wierd and The Wonderful".
"The desktop has the 16-bit offset" - what the hell are you talking about? It does not even make sense.
"Back when the PC was invented everything was 8-bits, hence why a byte is 8 bits". I think these measures pre-existed PCs, by a decade or two.
"They took 3 - 8 bit register and used the 2nd ..." - you evidently never did any 8086 programming. Even the Z80 precursor did not have this nonsensical arrangement.
"It wasn't until Microsoft in 2003 did a paradigm shift to remove this problem". Er.. except Windows NT was always a 32-bit O/S. Released in 1993.
In short, utter detritus from start to end. Staggering.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
- the entire 8086 line has the offset problem from 16 bit to our current 64 bit
- the problem is from the original hardware.
- the problem is in the machine code not assembler
The .net framework is the paradigm shift look it up, it rewrote the machine code to remove this problem.
|
|
|
|
|
How exactly can .NET remove segmentation from the underlying architecture? These are designed into the hardware. Can you provide some references? I'd love to be proved wrong.
"If you don't fail at least 90 percent of the time, you're not aiming high enough."
Alan Kay.
|
|
|
|
|
AMD x64 was the first hardware to use flat memory model in 2003
Most all 64 bit addressing is flat memory model - its the software (OS) that need to catch up.
Since the 386 chip - the memory management controller controlled the segmented addressing and it was software even in the 386 days not at the hardware level.
http://en.wikipedia.org/wiki/Flat_memory_model[^]
|
|
|
|
|
Colborne_Greg wrote: The desktop is a hard to understand technology You'd be happier with a bash shell? If so, we can arrange that
Colborne_Greg wrote: Its the techie that is crying WHY WINDOWS WHY. ..
So, what do you propose we do?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Don't Downgrade to Windows 8.x
Don't buy the new "Junk" on the market that relies on it.
|
|
|
|
|
My grandma uses 8.1
She says all others were to hard to understand to use.
|
|
|
|
|
She must be good with the smart phones too then.
|
|
|
|