My experience in MS Windows land, is that writes to DR7 are protected, but reads are not.
In fact, the Intel documents I have specifically state that this register is readable at any priveledge level, but no where have I seen a statement that you can MAKE it a priveledged instruction.
I don't think it's quite that simple. You can't scan and replace because
(1) what you replace may be data, not code
(2) even (1) wasn't a problem, how do you know the sequence you found isn't a coincidence? What if the end of "REPNE SCASB" and the beginning of "DIV ECX" just happens to look exacly like "MOV EAX, DR7" ?
This is where the processor comes to the rescue. To be sure, they can't expect every occurence of a certain sequence to be a particular instruction. It's quite possible to have that sequence be a combination of the end of one instruction and the beginning of another.
I'm no OS developer, but if I were trying to do this, I'd try scanning for these strings, and then placing a hardware execution breakpoint at the beginning of them. If it's not actually code, the breakpoint won't get hit. If it is code, then when it does get hit the VMWare software could just look at the instruction pointer register, to ascertain whether they "hit" in the middle of, or the beginning of, an instruction. If the latter, they simulate that "offending" instruction.
Wow, I'm glad Rob Clark thought to ask this on Ask Slashdot. I was wondering this myself.
Although, I would like to add a rider to his question:
With Intel processors, some hardware registers can't be trapped. For example, any priviledge level can read DR7 to find out if a debugger is resident. Writes to this can obviously be trapped, but AFAIK there is no way to get the processor to trap on reads.
I am sure there are other examples like this, as well. This seems to indicated that it is impossible to virtualize every aspect of the machine.
(Although, I suppose you could put the processor into single-step mode, and look at each instruction before it executes, looking for these types of instructions, but that would slow things WAAAYYYY down.
Doh! Where's that "++" link at? You never get picked for moderation when you most need to be! Seriously, I'm shocked at how many people on this site are of the mindset "please give us free sh*t, but you better give it to us the way WE say to, or else we'll be ungrateful!" I mean, REALLY....
This is capitalism at its finest. It's not as though they're milking the sweat of the masses. From what I can see, their search engine is a web crawler. They've got my esoteric page, and I *know* I didn't submit it to them. How is this any different that the local Bell Telco charging big bucks for a big ad in the Yellow pages?
This is capitalism at its finest. It's not as though they're milking the sweat of the masses. From what I can see, they're search engine is a web crawler. They've got my esoteric page, and I *know* I didn't submit it to them. How is this any different that the local Bell Telco charging big bucks for a big ad in the Yellow pages?
Others have expressed concern that larger independent software vendors may port their software to a specific distribution and create a de facto standard among the handful of distributions. "We don't want to be forced to standardize on one distribution," said the University of California at Davis' Benson.
I understand (and to some extent agree with) the notions of e pluribus unum, and that diversity yields strength. But at the same time, I can't help but think that some low-level form standardization of standardization is necessary.
To wit: Redhat 5.2's stock XFree86 configuration currently uses a "~/.wm_style" file to specify the current/preferred window manager. "/etc/X11/xinit/Xclients" reads the contents of this file, and inits the X environment accordingly. However, Redhat 5.1 did it differently. And I'm willing to bet that Suse, Caldera, etc. etc. each do it their own way, too. Such low-level differences as this example aren't really significant enough to be any kind of marketing "bullet item", to differentiate one vendor's platform from another. But it is is big enough difference to make it difficult for 3rd party software to configure itself for any system in a generic fashion.
You know, I too had "the bug" to buy a Sony VAIO F180 a few weeks ago... 333MHz PII, 14.1-inch, 24bpp TFT display, 6gig HD, 128MB ram, and a DVD rom drive... all for $2899.00. Drewl. Sony's website said "It's yours for only $53.23 a month"! That didn't sound all that bad, so I called for details.
It was something like 13.3% interest, over a term of *8 YEARS*, with a 8.85% origination fee (meaning that the actual principle of the loan was 1.0885*2899,) which would bring the total outlay to over 5 grand, by the time it was paid off!!! I'd hate to pay for ANY computer for 8 years, given how poorly they hold their value.
Ah, well... perhaps simplicity is the spice of life, after all.
The retroactive nature of changing one's.sig on slashdot has given Chris an excellent opportunity for historical revisionism, and to nullify your flame.;)
My experience in MS Windows land, is that writes to DR7 are protected, but reads are not.
In fact, the Intel documents I have specifically state that this register is readable at any priveledge level, but no where have I seen a statement that you can MAKE it a priveledged instruction.
--synaptik
Remember, i386 is little endian:
"fc ff ff ff" is really "0xFFFFFFFC"
or -4.
--synaptik
1. Not necessarily. What about instructions like
"MOV EAX, 0CDCDCDCDh" ?
The last four bytes look like 4 "INT 3" instructions.
--synaptik
I was hoping you wouldn't notice that small problem.
The idea is sound, it's only that Intel got stingy with the breakpoint registers.
--synaptik
I don't think it's quite that simple. You can't scan and replace because
(1) what you replace may be data, not code
(2) even (1) wasn't a problem, how do you know the sequence you found isn't a coincidence? What if the end of "REPNE SCASB" and the beginning of "DIV ECX" just happens to look exacly like "MOV EAX, DR7" ?
--synaptik
This is where the processor comes to the rescue. To be sure, they can't expect every occurence of a certain sequence to be a particular instruction. It's quite possible to have that sequence be a combination of the end of one instruction and the beginning of another.
I'm no OS developer, but if I were trying to do this, I'd try scanning for these strings, and then placing a hardware execution breakpoint at the beginning of them. If it's not actually code, the breakpoint won't get hit. If it is code, then when it does get hit the VMWare software could just look at the instruction pointer register, to ascertain whether they "hit" in the middle of, or the beginning of, an instruction. If the latter, they simulate that "offending" instruction.
But like he/you said, I'm talking out of my arse.
:)
--synaptik
Wow, I'm glad Rob Clark thought to ask this on Ask Slashdot. I was wondering this myself.
Although, I would like to add a rider to his question:
With Intel processors, some hardware registers can't be trapped. For example, any priviledge level can read DR7 to find out if a debugger is resident. Writes to this can obviously be trapped, but AFAIK there is no way to get the processor to trap on reads.
I am sure there are other examples like this, as well. This seems to indicated that it is impossible to virtualize every aspect of the machine.
(Although, I suppose you could put the processor into single-step mode, and look at each instruction before it executes, looking for these types of instructions, but that would slow things WAAAYYYY down.
--synaptik
Er, probably better restate that; I knew he was joking, and appreciated his biting sarcasm, which was right on the money.
--synaptik
And I was agreeing with him.
--synaptik
Doh! Where's that "++" link at? You never get picked for moderation when you most need to be! Seriously, I'm shocked at how many people on this site are of the mindset "please give us free sh*t, but you better give it to us the way WE say to, or else we'll be ungrateful!" I mean, REALLY....
--synaptik
"Oh, Gods, not the lignux thing again..."
--synaptik
This is capitalism at its finest. It's not as though they're milking the sweat of the masses. From what I can see, their search engine is a web crawler. They've got my esoteric page, and I *know* I didn't submit it to them.
How is this any different that the local Bell Telco charging big bucks for a big ad in the Yellow pages?
This is capitalism at its finest. It's not as though they're milking the sweat of the masses. From what I can see, they're search engine is a web crawler. They've got my esoteric page, and I *know* I didn't submit it to them. How is this any different that the local Bell Telco charging big bucks for a big ad in the Yellow pages?
Others have expressed concern that larger independent software vendors may port their software to a specific distribution and create a de facto standard among the handful of distributions. "We don't want to be forced to standardize on one distribution," said the University of California at Davis' Benson.
I understand (and to some extent agree with) the notions of e pluribus unum, and that diversity yields strength. But at the same time, I can't help but think that some low-level form standardization of standardization is necessary.
To wit: Redhat 5.2's stock XFree86 configuration currently uses a "~/.wm_style" file to specify the current/preferred window manager. "/etc/X11/xinit/Xclients" reads the contents of this file, and inits the X environment accordingly. However, Redhat 5.1 did it differently. And I'm willing to bet that Suse, Caldera, etc. etc. each do it their own way, too. Such low-level differences as this example aren't really significant enough to be any kind of marketing "bullet item", to differentiate one vendor's platform from another. But it is is big enough difference to make it difficult for 3rd party software to configure itself for any system in a generic fashion.
Just tell RMS that the real name is "lignux", but the 'g' is both silent and invisible. That should pacify him. ;)
The article states (well, infers) that the intended purpose of the device is to produce neutrons, not to provide power.
If I could have, I would have. :(
:(
I'll re-evaluate the laptop market offerings once I've saved up enough dough. But for now, no VAIO for me.
Regarding CmdrTaco's "VAIO" comment...
You know, I too had "the bug" to buy a Sony VAIO F180 a few weeks ago... 333MHz PII, 14.1-inch, 24bpp TFT display, 6gig HD, 128MB ram, and a DVD rom drive... all for $2899.00. Drewl. Sony's website said "It's yours for only $53.23 a month"! That didn't sound all that bad, so I called for details.
It was something like 13.3% interest, over a term of *8 YEARS*, with a 8.85% origination fee (meaning that the actual principle of the loan was 1.0885*2899,) which would bring the total outlay to over 5 grand, by the time it was paid off!!! I'd hate to pay for ANY computer for 8 years, given how poorly they hold their value.
Ah, well... perhaps simplicity is the spice of life, after all.
...Which would be a real shame, since they occasionally used the word(s) correctly.
Not off topic at-all; the article uses the word "anorak" to describe "hackers". I didn't understand the analogy.
Ok, my dictionary defines "anoraks" as a hooded cloak. Is there perhaps a regional (i.e., UK-specific) connotation to this word?
I think it's more likely that it's a reference to Battlestar Galactica.
.sig is blasphemous to the Talking Heads! :)
And, your
Wow, a BattleStar Ponderosa (think: Lorne Green) theme to product code names!
Next we'll be seeing "Adama", "Imperious Leader", and "Daggit" releases.
Either that, or someone changed your password on you.
Lord Kano:
.sig on slashdot has given Chris an excellent opportunity for historical revisionism, and to nullify your flame. ;)
The retroactive nature of changing one's