Ahh... of course, you do away with MMU overhead, TLB flushes, stack overflows, and you can still translate much (if not all) to native code... if you can do that with lower overheads than context switching etc gives you, you've got a win. I've never really understood though why OSs (at least on x86, which is all I can comment on) rely so soley on the page table and TLB flushing as they do, while ignoring selector based protection and having them just map the whole of their address space. Eg, your code selector should not allow higher memory access than the bottom of your stack, and as your stack maps from the top of the stack selectors limit, different processes stacks could be placed at different places in memory, rather than at the same "the top of the address space" which requires flushing those TLBs between context switches. I suppose it would make calling conventions harder where the stack's used for storage... I dunno, I'm rambling, just surprised they seem so under utilised.
"without telling everyone they are starting from scratch"
What?! That's exactly what they're telling everyone. A new system as a replacement to Windows, written from the ground up around extended concurrency models (to take more advantage of multicore/proc) and protection.
"They aren't actually doing anything new. Its just a different way to implement EXACTLY what we have in OSes now"
You think it inconceivable that the differences might mean things that you haven't thought of??
What if you forget about "malicious" for a moment (there's TPM chips for that) and think 'bugs'? With so many stability issues with Windows related to bugs in third party drivers and software, virtualising hardware interaction can be very beneficial, such as to the DMA chips. Without virtualising this, buggy drivers can end up reading/writing all over memory, beyond what permissions in the page table would allow CPU memory access. Windows wouldn't be the only OS to ever have problems with that occuring.
"Applications within the OS are already supposed to be 'virtualized' and 'isolated'... you know... thats what the OS is supposed to do already"
Well OSs often only really use a couple of the CPUs protection rings, with either all-in ring0 or all-out ring3. With "all or nothing", anything needing more than nothing needs to take everything. Evidentally whatever they're doing isn't always 100% successful, and one thing can crash another, even when there's no reason why those two things should be able to influence each other at all. Ignoring this fact and not putting some research into other ways of tacking the problem... well, would be pretty stupid, so I don't know why you would suggest that trying something that's not working in a different way would be a bad thing.
"All we're doing is making the shared portion of our computers smaller and smaller"
Yeah, why should your network card driver be able to read/write to memory allocated to your filesystem driver? These bits of memory shouldn't be shared. It doesn't mean "bloat bloat bloat"; you're not duplicating the filesystem drivers memory to allow the network card driver to write over its own copy of it "safely"; the network driver just doesn't get to see it at all.
"It really bothers me that people thing vmware/hyper-v/virtualbox are acceptable"
Well go on then Mr Perfect, write the perfect operating system that doesn't need them... making no mistakes ever, and not accepting any help of anybody who you couldn't absolutely guarentee wouldn't make any mistakes either.
It really bothers me that people think you should ignore a problem, and any solutions for the problem, simply because you don't think the problem should exist.
There's a reason why layers of abstraction occur in computing. Don't convince yourself that there can be no reason for something just because you can't think of it yourself. There's a lot of people out there. They will think of things you don't.
Win9x were built upon DOS (although replaced and virtualised it underneath itself) and provided win16/32 calls etc as subsystems. They're talking here about a fresh codebase that runs as a hypervisor and executes managed code. The idea basically being kinda like a microkernel but with increased isolation using newer virtualisation technology rather than the old erm... virtual memory technology... which has never really been used to its full potential I don't think.
"To my knowledge, there will most likely be no candidate in my constituency for whom I will be comfortable voting.:-("
Yep, am very much with you on that one. Just register your vote for someone you think won't get in anyway; poor voter turnout only signals to the government that they can do as they will, as we're not going to vote them out, but just sit at home instead.
The biggest eye opener for me was going back not too long ago you may remember, a certain Lord Pearson (who I was previously unaware of) invited a Dutch MP over to show his video in the House of Lords, a video about how terrorists were using the Koran to justify their attacks. Now, this Dutch MPs views were going a little too far, he was suggesting the outright banning of the Koran. Pearson's view was that this is an important issue that we cannot hide from; it needs debate. He doesn't agree with the views, but understands the importance of the debate, and thought this would be a good way to get it started.
The then home secretary Jacqui Smith (thank god she's gone) denied him access into the country, because of his views. I saw various members of the press interviewing Lord Pearsons outside the House of Lords. *He* was trying to convince *them* why this freedom of expression was an important thing, and even somebody whose views are perhaps distasteful must still have the right to express them. A member of the press asked him if somebody should be allowed to stand up there in the park and speak of their hatred of Jews. Pearsons said "Yes of course. And we should have the right to laugh at him for it". The journalist saw this as a chance to completely twist his words to get a juicy story out of it, and asked if Pearson was saying that anti-semitism was "funny".
Okay that was just one moment, but nonetheless, it was a moment that really put things into perspective for me. This unelected member of the House of Lords, in Westminster, trying to teach journalists the importance of free speech, while they were more interested in getting him in trouble for saying something he wasn't, and while our democratically elected government was denying someone entry into the country purely based on his views.
"the Powers That Be decided they knew better anyway and everyone who declared their religion as Jedi was just making it up"
You sound bitter?! *lol*
"who think we have an "atheist" state when there are still people sitting in the House of Lords with the power to legislate just because they hold high office in a church"
Well that's not entirely accurate, or at least, not entirely complete. It's not just because of the high office held in the church, it's because of the history behind that position; the fact that it's the church is almost incidental. If people fight for power for themselves and their decendants and nobody sufficiently counters that fight, they get it, and members of the church played a large part in pulling powers away from the monarch, which is why they have those legislative powers. It's not democracy... and? It's not democracy because people in this country think that fighting for democracy is signing up to any battle, which usually means they are mislead, and then protesting, like being complainy-pants ever solved a thing. Meanwhile, the only person I see out there who's obviously passionate about his beliefs, actually stepping up, into the system to try and actually make changes, is Nick Griffin... and that's a pretty sorry state of affairs! There's David Cameron, who has proudly announced that he's willing to sell out his own childrens education to become the PM, and Gordon Brown who... well, what can you say? I'd actually rather take my chances with the house of lords!!!
Fine, but electrons DIDN'T evolve from monkitrons, they've been the way they are since the beginning of time.
"...in a mostly atheist state"
If only that were true... we're not very religious, but we're not really very atheist either. We have lots of people who "believe" in god "just in case", and of course, jedi.
In a car driving to a place of irrelevance, we drive over something that punctures the tire. Having not learnt how to drive, so never owned a car, and in fact having never even been in a car that's got a puncture before (which at this point of reflection, seems maybe weird?) my thoughts never really got anywhere past "shit". A guy I was travelling in the car with jumped out and began the process of changing the tire.
This is a guy who reinstalls his OS etc on his PC once every few months, and on top of that, installs a f**k load of dodgy heavily virus ridden downloaded cracked software on top of it, beginning the process of "yep, that will last a couple of months" all over again. Before I realised this, I let him use a PC in my house while he was over, and god knows what he did to it, but it was a reinstall job. I've known various people since then who've said they got a disc with a copy of something or another off him and left them having to reformat. Somehow, something manages to get past any virus scanner. Nothing I've said has made a difference, it just keeps repeating over 'n over 'n over.
I guess the difference is I didn't f**k up my gfs car by not changing the wheel properly or anything like that... I can program many different languages, hold my end of a conversation on advanced physics from the partical to the cosmic, and even have social skills, I'm not a stupid person... but if a wheel needs changing, I'll be there completely useless thinking "shit", which which sounds pretty stupid, like I can't have lived even. We know the things we know, huh.
Well if you actually think about what you're saying, you'll realise why it's such a stupid suggestion. You put cameras in every home, you have to look thru all the cameras in every home for a change of finding something wrong, which means you're looking into the homes of mostly innocent people. Even the good cop would have to be. However, if you place the camera/tracking device on the thing that's actually being stolen, and activate it when it is reported stolen (many cars have this) then any interaction you have with that security device is not invading anybody's privacy, except for whomever's trying to steal it, and they don't get privacy protection. An abused system doesn't mean a useless system, it just means measures should be put into place to stop abuse, for example, the owner of the thing in question (laptop, car, or in this case it should be the kids' parents) has a security code that enables tracking software, so the tracking software cannot be used without their authorisation. Problem solved. Without any need to throw out the baby with the bathwater. That wasn't so hard, was it?
It improves readability in brains that are capable of detecting and reading two seperate patterns as two seperate things. In brains that don't do this automatically then I imagine it would hurt readability. This is why so many editors these days have syntax highlighting, which does, as the title states, highlights syntax. As it's a different part of the brain that does this work, you get increased parallelism, which allows faster processing of what you read.
Not everything has syntax highlighting, for example, many people (not me) use tools like phpMyAdmin which I don't believe does it. Also, much SQL will find its way into other source code (eg perl or php or python etc etc) which won't necessarily know the given string is SQL, and so won't apply highlighting to the SQL syntax within. So, people find other ways.
That's a crap defense! Surely you're not too small just to say "Oops, sorry, my mistake, I take it back" are ya? Don't slate someone on public forum if you can't even man up when you get it wrong, that just makes you come across as a dick, how can that possibly be a good thing?
Well there's no context switching going on here as it's only a near return, so in effect it translates to a dynamic jump (or a register load, with that register being EIP) and a register increment (ESP) which seems like it would be worth optimising considering what's involved and what's already available in the CPU... you're still going to get some pipeline flushing whatever happens, but the question is where that begins; with aliased register and memory dependancy tracking required already for speculative execution, the processor can know the target for the RETN by the time INC EBX has left the execution unit... ah... tho they've very close here... I guess as modern CPUs issue more and more instructions per clock, the RETN could already be executing at the same time as the INC EBX, or be at the most a single clock away... so yeah in that case you're right, as all optimisations in the world are irrelevant if the change to the jump address occurs in the same clock as the jump.
Hmm, I wonder how one would go about implementing some think-ahead *lol*
How big will the stall really be? Seems with register renaming isolating the bit of code from any uses of EBX,ESP,EIP outside of the code, and the original RETN address will most likely be in the processor waiting to be written out (depending on any relevant MTRR flags etc) and clever enough register/memory renaming (which I/assume/ modern processors are doing) can have aliased EIP to [ESP+x] to EBX by the time the RETN instruction has gone through the DECODE stages, so as soon as INC EBX is executed, it knows the register that's holding the value that EIP will be after the RETN is executed is incremented too, throwing out instructions past the RETN that've been speculatively LOAD/DECODEd, causing the new instructions to enter the start of the pipeline while the PUSH EBX is in execution (probably quickly too, as the memory at the location will most likely already be local), so after RETN there will be a small delay until the new instruction gets to the EXECute stage.
Of course I know this is drastically simplified, relies on the processor being able to set up aliased register dependancies in the DECODE stages, and is ignoring the multiple execution units that without the INC EBX could be executing more instructions at the same time... am I wrong in assuming that register/dependancy aliasing can occur in in DECODE? It's been such a long time I looked at CPU internals, I remember where they were, I'm just assuming that by now they can do that *lol*
"I once heard of some compiler geeks writing a program to find these code snips"
'Genetic algorithm's are one way of doing it that sounds most interesting. Run your loads and loads of snippets of code, collecting those that work (or those that closest to work) and those that don't... then "mate" them; so you produce a second generation, swapping over bits of code from one with code another, and run that, keeping the best and going for a third round. Occasionally, just flip a random bit in a code block, which will be your 'mutation', and if that crashes, causes an illegal instruction fault, infinite loops etc etc, you bin it. Occasionally, one will improve it, and so you keep it. Repeat ad nauseum! After 50,000 generations, you end up with something far better than you could've just written yourself (although this may only really apply to larger algorithms than an abs call).
I believe that there are jet engines out there "designed" in this way, where the efficiency of the engine wrt airflow etc etc is beyond what the creators of the system that produced it could even understand themselves. I think as computers get more powerful, biological processing, either simulated/abstracted (as above) or actually real biology could play a big role in our progress
Wow you're really clever, I had no idea, ya know I was actually thinking he was talking about a giant wooden horse that could make DTMF tones into skype whenever he played counter strike four, so it could secretly tell his opponent, ET, where to shoot. My google I wish even harder you were self monitoring and reporting to yourself how much dang it, would be so swell if you could teach me all about understanding abstract concepts seeing as you got my point but I didn't get anybody's. This is how stupid I am, right now... your reply, to me, seems like you're hitting on me.
Right right right, well osx was the first mac os to be done vaguelly "properly" at the kernel level as far as I remember, with previous os's being semi windows 3.1 level in some respects such as cooperative multitasking rather than preemptive, and proper protected/virtual memory mechanism so buggy drivers/apps could just go walking all over the system. So, definitely wouldn't be surprised if that was the case!
I'm definitely not a mac lover myself, but one or two friends with the laptops, and had a support contract with a design company at one point who all used macs, and i've not seen that on osx... although, one of my clients customers was having problems last week with a USB external dvd burner... you could burn one disc, but then after it was done 'n after it ejects, the drive wouldn't return again, can't remember if it just wouldn't pick up more discs or powered down or what, but that sounded like a USB/driver problem as the drive works fine otherwise... just have to do a cold reset (I/think/ just of the drive, but maybe OS) in between burnings, which makes things less than convenient!
I actually didn't even know there was that myth, they seem silly to me because of the heat the core2duos produce, I personally prefer a well vented system, but each to their own, I wasn't after a serious pc vs apple debate, not sure my karma can handle it after the netscape vs ie one a few days back *lol*
Oo you definitely don't want to be deplugging usb drives, you kind of need them to keep their plugs so you can plug them in.
As for unplugging... what does that? Kernel panic sounds very linuxy, but I've never had that happen, and I've been plugging 'n unplugging up to three usb drives at a time on it (a client of mine's stock has become somewhat disorganised and lost track of what's faulty and what they've used themselves, and as testing harddrives themself is much quicker 'n easier on Linux as you can just badblocks the drive, completely partition 'n filesystem independant, I volunteered. So I was production lining a load of drives, different sizes, using three usb interfaces)... and yeah, all without problem, apart from when a drive actually did have bad sects, but it didn't affect the machine or anything.
"any potential problem a Mac might possibly have A: is actually a feature B: is actually your own fault or C: doesn't matter"
Macs are just weird... on my windows machine, both A: and B: are redundant as it doesn't have a floppy drive and C: really does matter cuz the bootloader's there. Like Chalk 'n iCheese.
"* last page has citations back to their own blog"
*lol* it's like when some breaking story (ie, any story) hits the news, but perhaps controversial or unconfirmed, and they say "it has been reported that blah blah blah" and then you flick over the channel and they're saying "blah blah has reported that blah blah blah", and it doesn't take long to notice that all people are telling you is that people are telling you what they're telling you.
Someone somewhere get tipped off about some rumour, phones someone he knows in another network says "have you heard about blah blah" and they have, as they received the same tip off. So guy on other end of phone mouths over too his boss saying "it's whatshisname over at thingy, they're going with the blah blah story" so the boss says "we'll go with it, put it on the 10 bullitin after the bit about the elephant who only has a monkey sized head". "Yeah we're going with the story" he says back, so now the first person says to his boss "yeah they're already going with it" and so gets it on their 10 o'clock bullitin too.
I can prove that it happens - check out the replies to this comment here
"but doesn't mention that Adobe's own CS4 install tries to phone home"
Riiight... cuz that's what trojans are famous for isn't it... checking to make sure that you're allowed to run then. My god I do wish trojans actually did do that, and better than other software does it. I'll admit on here, I don't legally own any trojans at all, which means all I have to do is make sure that they can phone home to verify this, and never have to worry about them again! Ahh... pleasant thoughts.
Ahh... of course, you do away with MMU overhead, TLB flushes, stack overflows, and you can still translate much (if not all) to native code... if you can do that with lower overheads than context switching etc gives you, you've got a win. I've never really understood though why OSs (at least on x86, which is all I can comment on) rely so soley on the page table and TLB flushing as they do, while ignoring selector based protection and having them just map the whole of their address space. Eg, your code selector should not allow higher memory access than the bottom of your stack, and as your stack maps from the top of the stack selectors limit, different processes stacks could be placed at different places in memory, rather than at the same "the top of the address space" which requires flushing those TLBs between context switches. I suppose it would make calling conventions harder where the stack's used for storage... I dunno, I'm rambling, just surprised they seem so under utilised.
Cheers for that info anyway.
"without telling everyone they are starting from scratch"
What?! That's exactly what they're telling everyone. A new system as a replacement to Windows, written from the ground up around extended concurrency models (to take more advantage of multicore/proc) and protection.
"They aren't actually doing anything new. Its just a different way to implement EXACTLY what we have in OSes now"
You think it inconceivable that the differences might mean things that you haven't thought of??
What if you forget about "malicious" for a moment (there's TPM chips for that) and think 'bugs'? With so many stability issues with Windows related to bugs in third party drivers and software, virtualising hardware interaction can be very beneficial, such as to the DMA chips. Without virtualising this, buggy drivers can end up reading/writing all over memory, beyond what permissions in the page table would allow CPU memory access. Windows wouldn't be the only OS to ever have problems with that occuring.
"Applications within the OS are already supposed to be 'virtualized' and 'isolated' ... you know ... thats what the OS is supposed to do already"
Well OSs often only really use a couple of the CPUs protection rings, with either all-in ring0 or all-out ring3. With "all or nothing", anything needing more than nothing needs to take everything. Evidentally whatever they're doing isn't always 100% successful, and one thing can crash another, even when there's no reason why those two things should be able to influence each other at all. Ignoring this fact and not putting some research into other ways of tacking the problem... well, would be pretty stupid, so I don't know why you would suggest that trying something that's not working in a different way would be a bad thing.
"All we're doing is making the shared portion of our computers smaller and smaller"
Yeah, why should your network card driver be able to read/write to memory allocated to your filesystem driver? These bits of memory shouldn't be shared. It doesn't mean "bloat bloat bloat"; you're not duplicating the filesystem drivers memory to allow the network card driver to write over its own copy of it "safely"; the network driver just doesn't get to see it at all.
"It really bothers me that people thing vmware/hyper-v/virtualbox are acceptable"
Well go on then Mr Perfect, write the perfect operating system that doesn't need them... making no mistakes ever, and not accepting any help of anybody who you couldn't absolutely guarentee wouldn't make any mistakes either.
It really bothers me that people think you should ignore a problem, and any solutions for the problem, simply because you don't think the problem should exist.
There's a reason why layers of abstraction occur in computing. Don't convince yourself that there can be no reason for something just because you can't think of it yourself. There's a lot of people out there. They will think of things you don't.
Win9x were built upon DOS (although replaced and virtualised it underneath itself) and provided win16/32 calls etc as subsystems. They're talking here about a fresh codebase that runs as a hypervisor and executes managed code. The idea basically being kinda like a microkernel but with increased isolation using newer virtualisation technology rather than the old erm... virtual memory technology... which has never really been used to its full potential I don't think.
"To my knowledge, there will most likely be no candidate in my constituency for whom I will be comfortable voting. :-("
Yep, am very much with you on that one. Just register your vote for someone you think won't get in anyway; poor voter turnout only signals to the government that they can do as they will, as we're not going to vote them out, but just sit at home instead.
Is a shame that's the best we can do!
The biggest eye opener for me was going back not too long ago you may remember, a certain Lord Pearson (who I was previously unaware of) invited a Dutch MP over to show his video in the House of Lords, a video about how terrorists were using the Koran to justify their attacks. Now, this Dutch MPs views were going a little too far, he was suggesting the outright banning of the Koran. Pearson's view was that this is an important issue that we cannot hide from; it needs debate. He doesn't agree with the views, but understands the importance of the debate, and thought this would be a good way to get it started.
The then home secretary Jacqui Smith (thank god she's gone) denied him access into the country, because of his views. I saw various members of the press interviewing Lord Pearsons outside the House of Lords. *He* was trying to convince *them* why this freedom of expression was an important thing, and even somebody whose views are perhaps distasteful must still have the right to express them. A member of the press asked him if somebody should be allowed to stand up there in the park and speak of their hatred of Jews. Pearsons said "Yes of course. And we should have the right to laugh at him for it". The journalist saw this as a chance to completely twist his words to get a juicy story out of it, and asked if Pearson was saying that anti-semitism was "funny".
Okay that was just one moment, but nonetheless, it was a moment that really put things into perspective for me. This unelected member of the House of Lords, in Westminster, trying to teach journalists the importance of free speech, while they were more interested in getting him in trouble for saying something he wasn't, and while our democratically elected government was denying someone entry into the country purely based on his views.
How is that the right way round?!!
"the Powers That Be decided they knew better anyway and everyone who declared their religion as Jedi was just making it up"
You sound bitter?! *lol*
"who think we have an "atheist" state when there are still people sitting in the House of Lords with the power to legislate just because they hold high office in a church"
Well that's not entirely accurate, or at least, not entirely complete. It's not just because of the high office held in the church, it's because of the history behind that position; the fact that it's the church is almost incidental. If people fight for power for themselves and their decendants and nobody sufficiently counters that fight, they get it, and members of the church played a large part in pulling powers away from the monarch, which is why they have those legislative powers. It's not democracy... and? It's not democracy because people in this country think that fighting for democracy is signing up to any battle, which usually means they are mislead, and then protesting, like being complainy-pants ever solved a thing. Meanwhile, the only person I see out there who's obviously passionate about his beliefs, actually stepping up, into the system to try and actually make changes, is Nick Griffin... and that's a pretty sorry state of affairs! There's David Cameron, who has proudly announced that he's willing to sell out his own childrens education to become the PM, and Gordon Brown who... well, what can you say? I'd actually rather take my chances with the house of lords!!!
Fine, but electrons DIDN'T evolve from monkitrons, they've been the way they are since the beginning of time.
"...in a mostly atheist state"
If only that were true... we're not very religious, but we're not really very atheist either. We have lots of people who "believe" in god "just in case", and of course, jedi.
That actually adds to my point rather than detracts from it :-p
In a car driving to a place of irrelevance, we drive over something that punctures the tire. Having not learnt how to drive, so never owned a car, and in fact having never even been in a car that's got a puncture before (which at this point of reflection, seems maybe weird?) my thoughts never really got anywhere past "shit". A guy I was travelling in the car with jumped out and began the process of changing the tire.
This is a guy who reinstalls his OS etc on his PC once every few months, and on top of that, installs a f**k load of dodgy heavily virus ridden downloaded cracked software on top of it, beginning the process of "yep, that will last a couple of months" all over again. Before I realised this, I let him use a PC in my house while he was over, and god knows what he did to it, but it was a reinstall job. I've known various people since then who've said they got a disc with a copy of something or another off him and left them having to reformat. Somehow, something manages to get past any virus scanner. Nothing I've said has made a difference, it just keeps repeating over 'n over 'n over.
I guess the difference is I didn't f**k up my gfs car by not changing the wheel properly or anything like that... I can program many different languages, hold my end of a conversation on advanced physics from the partical to the cosmic, and even have social skills, I'm not a stupid person... but if a wheel needs changing, I'll be there completely useless thinking "shit", which which sounds pretty stupid, like I can't have lived even. We know the things we know, huh.
Well if you actually think about what you're saying, you'll realise why it's such a stupid suggestion. You put cameras in every home, you have to look thru all the cameras in every home for a change of finding something wrong, which means you're looking into the homes of mostly innocent people. Even the good cop would have to be. However, if you place the camera/tracking device on the thing that's actually being stolen, and activate it when it is reported stolen (many cars have this) then any interaction you have with that security device is not invading anybody's privacy, except for whomever's trying to steal it, and they don't get privacy protection. An abused system doesn't mean a useless system, it just means measures should be put into place to stop abuse, for example, the owner of the thing in question (laptop, car, or in this case it should be the kids' parents) has a security code that enables tracking software, so the tracking software cannot be used without their authorisation. Problem solved. Without any need to throw out the baby with the bathwater. That wasn't so hard, was it?
"then it would be trivial for anyone to circumvent the GPL and it would loose all it's meaning"
Just like how the word 'lose' loses it's meaning when spelt 'loose'? ;-)
(sorry couldn't resist)
It improves readability in brains that are capable of detecting and reading two seperate patterns as two seperate things. In brains that don't do this automatically then I imagine it would hurt readability. This is why so many editors these days have syntax highlighting, which does, as the title states, highlights syntax. As it's a different part of the brain that does this work, you get increased parallelism, which allows faster processing of what you read.
Not everything has syntax highlighting, for example, many people (not me) use tools like phpMyAdmin which I don't believe does it. Also, much SQL will find its way into other source code (eg perl or php or python etc etc) which won't necessarily know the given string is SQL, and so won't apply highlighting to the SQL syntax within. So, people find other ways.
That's a crap defense! Surely you're not too small just to say "Oops, sorry, my mistake, I take it back" are ya? Don't slate someone on public forum if you can't even man up when you get it wrong, that just makes you come across as a dick, how can that possibly be a good thing?
Well there's no context switching going on here as it's only a near return, so in effect it translates to a dynamic jump (or a register load, with that register being EIP) and a register increment (ESP) which seems like it would be worth optimising considering what's involved and what's already available in the CPU... you're still going to get some pipeline flushing whatever happens, but the question is where that begins; with aliased register and memory dependancy tracking required already for speculative execution, the processor can know the target for the RETN by the time INC EBX has left the execution unit... ah... tho they've very close here... I guess as modern CPUs issue more and more instructions per clock, the RETN could already be executing at the same time as the INC EBX, or be at the most a single clock away... so yeah in that case you're right, as all optimisations in the world are irrelevant if the change to the jump address occurs in the same clock as the jump.
Hmm, I wonder how one would go about implementing some think-ahead *lol*
"Whats next operating systems in PHP?"
Thanks... I was just about to go sleep, but now I'm gonna have nightmares. Dick. :-p
How big will the stall really be? Seems with register renaming isolating the bit of code from any uses of EBX,ESP,EIP outside of the code, and the original RETN address will most likely be in the processor waiting to be written out (depending on any relevant MTRR flags etc) and clever enough register/memory renaming (which I /assume/ modern processors are doing) can have aliased EIP to [ESP+x] to EBX by the time the RETN instruction has gone through the DECODE stages, so as soon as INC EBX is executed, it knows the register that's holding the value that EIP will be after the RETN is executed is incremented too, throwing out instructions past the RETN that've been speculatively LOAD/DECODEd, causing the new instructions to enter the start of the pipeline while the PUSH EBX is in execution (probably quickly too, as the memory at the location will most likely already be local), so after RETN there will be a small delay until the new instruction gets to the EXECute stage.
Of course I know this is drastically simplified, relies on the processor being able to set up aliased register dependancies in the DECODE stages, and is ignoring the multiple execution units that without the INC EBX could be executing more instructions at the same time... am I wrong in assuming that register/dependancy aliasing can occur in in DECODE? It's been such a long time I looked at CPU internals, I remember where they were, I'm just assuming that by now they can do that *lol*
"I once heard of some compiler geeks writing a program to find these code snips"
'Genetic algorithm's are one way of doing it that sounds most interesting. Run your loads and loads of snippets of code, collecting those that work (or those that closest to work) and those that don't... then "mate" them; so you produce a second generation, swapping over bits of code from one with code another, and run that, keeping the best and going for a third round. Occasionally, just flip a random bit in a code block, which will be your 'mutation', and if that crashes, causes an illegal instruction fault, infinite loops etc etc, you bin it. Occasionally, one will improve it, and so you keep it. Repeat ad nauseum! After 50,000 generations, you end up with something far better than you could've just written yourself (although this may only really apply to larger algorithms than an abs call).
I believe that there are jet engines out there "designed" in this way, where the efficiency of the engine wrt airflow etc etc is beyond what the creators of the system that produced it could even understand themselves. I think as computers get more powerful, biological processing, either simulated/abstracted (as above) or actually real biology could play a big role in our progress
aww did it hurt your poor little eyes, did having to move them around so much leave you out of breath? Go take a jog or something, fatty.
Wow you're really clever, I had no idea, ya know I was actually thinking he was talking about a giant wooden horse that could make DTMF tones into skype whenever he played counter strike four, so it could secretly tell his opponent, ET, where to shoot. My google I wish even harder you were self monitoring and reporting to yourself how much dang it, would be so swell if you could teach me all about understanding abstract concepts seeing as you got my point but I didn't get anybody's. This is how stupid I am, right now... your reply, to me, seems like you're hitting on me.
Right right right, well osx was the first mac os to be done vaguelly "properly" at the kernel level as far as I remember, with previous os's being semi windows 3.1 level in some respects such as cooperative multitasking rather than preemptive, and proper protected/virtual memory mechanism so buggy drivers/apps could just go walking all over the system. So, definitely wouldn't be surprised if that was the case!
I'm definitely not a mac lover myself, but one or two friends with the laptops, and had a support contract with a design company at one point who all used macs, and i've not seen that on osx... although, one of my clients customers was having problems last week with a USB external dvd burner... you could burn one disc, but then after it was done 'n after it ejects, the drive wouldn't return again, can't remember if it just wouldn't pick up more discs or powered down or what, but that sounded like a USB/driver problem as the drive works fine otherwise... just have to do a cold reset (I /think/ just of the drive, but maybe OS) in between burnings, which makes things less than convenient!
I actually didn't even know there was that myth, they seem silly to me because of the heat the core2duos produce, I personally prefer a well vented system, but each to their own, I wasn't after a serious pc vs apple debate, not sure my karma can handle it after the netscape vs ie one a few days back *lol*
Oo you definitely don't want to be deplugging usb drives, you kind of need them to keep their plugs so you can plug them in.
As for unplugging... what does that? Kernel panic sounds very linuxy, but I've never had that happen, and I've been plugging 'n unplugging up to three usb drives at a time on it (a client of mine's stock has become somewhat disorganised and lost track of what's faulty and what they've used themselves, and as testing harddrives themself is much quicker 'n easier on Linux as you can just badblocks the drive, completely partition 'n filesystem independant, I volunteered. So I was production lining a load of drives, different sizes, using three usb interfaces) ... and yeah, all without problem, apart from when a drive actually did have bad sects, but it didn't affect the machine or anything.
"any potential problem a Mac might possibly have A: is actually a feature B: is actually your own fault or C: doesn't matter"
Macs are just weird... on my windows machine, both A: and B: are redundant as it doesn't have a floppy drive and C: really does matter cuz the bootloader's there. Like Chalk 'n iCheese.
"* last page has citations back to their own blog"
*lol* it's like when some breaking story (ie, any story) hits the news, but perhaps controversial or unconfirmed, and they say "it has been reported that blah blah blah" and then you flick over the channel and they're saying "blah blah has reported that blah blah blah", and it doesn't take long to notice that all people are telling you is that people are telling you what they're telling you.
Someone somewhere get tipped off about some rumour, phones someone he knows in another network says "have you heard about blah blah" and they have, as they received the same tip off. So guy on other end of phone mouths over too his boss saying "it's whatshisname over at thingy, they're going with the blah blah story" so the boss says "we'll go with it, put it on the 10 bullitin after the bit about the elephant who only has a monkey sized head". "Yeah we're going with the story" he says back, so now the first person says to his boss "yeah they're already going with it" and so gets it on their 10 o'clock bullitin too.
I can prove that it happens - check out the replies to this comment here
"but doesn't mention that Adobe's own CS4 install tries to phone home"
Riiight... cuz that's what trojans are famous for isn't it... checking to make sure that you're allowed to run then. My god I do wish trojans actually did do that, and better than other software does it. I'll admit on here, I don't legally own any trojans at all, which means all I have to do is make sure that they can phone home to verify this, and never have to worry about them again! Ahh... pleasant thoughts.