![]() | This article is rated Start-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||
|
I removed this because Wikipedia should not pronounce judgement on what's good and what's bad design. It was tempting to leave it in with the weasel phrase "Some feel that...", since I do feel it's poor design, but I resisted. - furrykef ( Talk at me) 02:42, 24 October 2005 (UTC)
“The Linux kernel sets up only 4 segments…” Really? Doesn’t Linux use TSS segments as well? And some others? Understanding the Linux Kernel (2nd edition) says so about the 2.4 kernel. Don’t know whether it’s true for the 2.6 kernel as well…
Linux only uses 4 memory segments. Task State Segments are different and Linux only uses 1 of them. A few other miscellaneous segments (for APIC stuff I believe) are used, but the kernel and userspace only use the 4 segments listed. I suppose that could be made a bit more clear... David.kaplan 16:04, 30 September 2006 (UTC)
A single linear address can be mapped to many segmented addresses. For instance, the linear address above (0x08124) can have the segmented addresses 0x6EF0:0x1234, 0x0812:0x0004 and 0x0000:0x8124 (and many more). This could be confusing to programers accustomed to unique addressing schemes.
What was the interest in allowing such overlaps? -- Abdull 13:19, 7 July 2007 (UTC)
It seems a company called VAutomation (now ARC) has been selling "Turbo186" cores that are mostly 80186 compatible but compute addresses as linear = (segment << 8) + offset, rather than linear = (segment << 4) + offset; this raises the granularity of segment starting addresses to 256 bytes and allows access to 16 MiB of memory in real mode. Such processors would of course go in an embedded system rather than in a PC. Have other manufacturers had similar products? Can this be added to the article? 213.216.199.53 14:25, 18 July 2007 (UTC)
This page claims:
But the memory segmentation page states quite the opposite, namely:
I see some major contradiction or at least the need to clarify and pinpoint some detail. -- Blazar. writeto() 08:09, 14 August 2008 (UTC)
For those not familiar with the topic, 6EF0h looks like 16 bit wide number. Something like A6EFh and A6EF0h will look more clear.-- Yegorius ( talk) 15:57, 4 January 2009 (UTC)
"(this is true for 64bit mode as well, but beyond the scope of discussion)"
No it isn't! This is pertinent information to put here. —Preceding unsigned comment added by 216.107.215.226 ( talk) 21:37, 22 November 2010 (UTC)
I edited the part about segment registers in x86-64 environments to be more readable and accurate. However, there are very few references for this information, most of it being WP:OR. What I can say is the following:
I'd like to see proper referencing for this information in this article, but unfortunately I can't provide it myself. -- 87.251.51.88 ( talk) 13:03, 9 April 2012 (UTC)
The article states that in 286 protected mode (and the later 32-bit protected mode), the first 1MB of memory cannot be accessed. This seems wrong to me. Rather than just remove it, can anyone confirm one way or the other? -- Malvineous ( talk) 03:46, 21 November 2015 (UTC)
I don't see this mentioned in the 286 protected mode section any more, so I guess it got removed. JayWH2 ( talk) 16:54, 13 February 2016 (UTC)
The current text says "it still necessitated dividing memory into 64k segments like was done in real mode. This limitation can be worked around on 32-bit CPUs which permit the use of memory pointers greater than 64k in size, however as the base addresses remain 24-bit, the maximum segment size that can be created is 16MB"
I am no 286 guru, but, in reading the rest of the information, it sounds like the limitation of the segment size is due to the Segment Limit field being only 24 bits long [1]. The fact that the base address is 24 bits long does not sound like a reason to limit the segment size, only their starting address.
Can someone confirm? JayWH2 ( talk) 17:08, 13 February 2016 (UTC)
References
In the section entitled "Later developments", what does SWAPGS stand for? — Preceding unsigned comment added by 95.147.5.140 ( talk) 18:35, 16 August 2019 (UTC)
For the chunk showing the calculation of the address between the second and third paragraphs of text in section "Real mode", the sequences of binary numbers are wrapping on my display (and wrapping at different points), making the whole look nonsensical. I'm not sure if this is caused by some error in the markup used, or by the image (Overlapping_realmode_segments.svg) appearing to its right and thus narrowing the available window, and have no clue how to fix it. Hv ( talk) 13:45, 8 September 2022 (UTC)
![]() | This article is rated Start-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||
|
I removed this because Wikipedia should not pronounce judgement on what's good and what's bad design. It was tempting to leave it in with the weasel phrase "Some feel that...", since I do feel it's poor design, but I resisted. - furrykef ( Talk at me) 02:42, 24 October 2005 (UTC)
“The Linux kernel sets up only 4 segments…” Really? Doesn’t Linux use TSS segments as well? And some others? Understanding the Linux Kernel (2nd edition) says so about the 2.4 kernel. Don’t know whether it’s true for the 2.6 kernel as well…
Linux only uses 4 memory segments. Task State Segments are different and Linux only uses 1 of them. A few other miscellaneous segments (for APIC stuff I believe) are used, but the kernel and userspace only use the 4 segments listed. I suppose that could be made a bit more clear... David.kaplan 16:04, 30 September 2006 (UTC)
A single linear address can be mapped to many segmented addresses. For instance, the linear address above (0x08124) can have the segmented addresses 0x6EF0:0x1234, 0x0812:0x0004 and 0x0000:0x8124 (and many more). This could be confusing to programers accustomed to unique addressing schemes.
What was the interest in allowing such overlaps? -- Abdull 13:19, 7 July 2007 (UTC)
It seems a company called VAutomation (now ARC) has been selling "Turbo186" cores that are mostly 80186 compatible but compute addresses as linear = (segment << 8) + offset, rather than linear = (segment << 4) + offset; this raises the granularity of segment starting addresses to 256 bytes and allows access to 16 MiB of memory in real mode. Such processors would of course go in an embedded system rather than in a PC. Have other manufacturers had similar products? Can this be added to the article? 213.216.199.53 14:25, 18 July 2007 (UTC)
This page claims:
But the memory segmentation page states quite the opposite, namely:
I see some major contradiction or at least the need to clarify and pinpoint some detail. -- Blazar. writeto() 08:09, 14 August 2008 (UTC)
For those not familiar with the topic, 6EF0h looks like 16 bit wide number. Something like A6EFh and A6EF0h will look more clear.-- Yegorius ( talk) 15:57, 4 January 2009 (UTC)
"(this is true for 64bit mode as well, but beyond the scope of discussion)"
No it isn't! This is pertinent information to put here. —Preceding unsigned comment added by 216.107.215.226 ( talk) 21:37, 22 November 2010 (UTC)
I edited the part about segment registers in x86-64 environments to be more readable and accurate. However, there are very few references for this information, most of it being WP:OR. What I can say is the following:
I'd like to see proper referencing for this information in this article, but unfortunately I can't provide it myself. -- 87.251.51.88 ( talk) 13:03, 9 April 2012 (UTC)
The article states that in 286 protected mode (and the later 32-bit protected mode), the first 1MB of memory cannot be accessed. This seems wrong to me. Rather than just remove it, can anyone confirm one way or the other? -- Malvineous ( talk) 03:46, 21 November 2015 (UTC)
I don't see this mentioned in the 286 protected mode section any more, so I guess it got removed. JayWH2 ( talk) 16:54, 13 February 2016 (UTC)
The current text says "it still necessitated dividing memory into 64k segments like was done in real mode. This limitation can be worked around on 32-bit CPUs which permit the use of memory pointers greater than 64k in size, however as the base addresses remain 24-bit, the maximum segment size that can be created is 16MB"
I am no 286 guru, but, in reading the rest of the information, it sounds like the limitation of the segment size is due to the Segment Limit field being only 24 bits long [1]. The fact that the base address is 24 bits long does not sound like a reason to limit the segment size, only their starting address.
Can someone confirm? JayWH2 ( talk) 17:08, 13 February 2016 (UTC)
References
In the section entitled "Later developments", what does SWAPGS stand for? — Preceding unsigned comment added by 95.147.5.140 ( talk) 18:35, 16 August 2019 (UTC)
For the chunk showing the calculation of the address between the second and third paragraphs of text in section "Real mode", the sequences of binary numbers are wrapping on my display (and wrapping at different points), making the whole look nonsensical. I'm not sure if this is caused by some error in the markup used, or by the image (Overlapping_realmode_segments.svg) appearing to its right and thus narrowing the available window, and have no clue how to fix it. Hv ( talk) 13:45, 8 September 2022 (UTC)