Nothing anyone and everyone (that is, the whole mankind) can do for a foreseeable future (100-200 years) can reverse the amount of harm Microsoft inflicted on mankind. It made billions of people stupid, it infected their minds, the whole culture with Microsoft's idea of computer being a fussy stupid creature suitable only for entertainment. This is not going to be fixed until all knowledge of Windows is expunged from our collective knowledge and culture.
Its obvious what I meant by synchronization. You have to protect concurrent write-access across processes.
Actually, when shared memory is used for interprocess communications, you just should avoid concurrent write access (or write concurrent with read) like the plague. Then, if you can't avoid it, you should check if you are not, by any chance, an idiot, and if so, leave software development forever. Only then, if you have a reliable confirmation that it's unavoidable and you are not an idiot, you should think of a locking scheme.
lol IPC. lol. Seriously? have you written a single high performance application in your life? Any IPC overhead will reduce performance compared to shared memory via threads.Also IPC has to implemented through kernel threads causing even more horrible usermode to kernel mode switching.
Actually yes, I did. Unix pipes and sockets are considered to be "I/O" and affect scheduler, so it can optimize the timing and order of waking up the processes involved. Shared memory is considered memory access, and does not affect anything at all unless it's unlucky enough to cause a page-in, so actual scheduling happens in locking/semaphores. In its turn, multitude of semaphores (managed explicitly by applications but all affecting the scheduler) causes suboptimal scheduling compared to scheduler-managed waiting/sleep by applications (one state per file descriptor).
On multicore/multi-CPU systems the superiority of the Unix model is even more noticeable because processes can avoid sleeping even when they are closely related -- kernel just passes data asynchronously. Shared memory can be used for bulk data handling, to reduce copying while all handling of data-passing operations happen asynchronously.
This is not the case on Windows because Windows IPC is written by idiots.
Traditional single processor UNIX design was shitty as hell. All system calls were were blocking in kernel mode for the period of the time slice. Only way around this was to manually release control via wait() (in kernel mode). Linux was the same till 2.4.
Except, of course: 1. From the process' point of view all system calls cause the process to sleep regardless of the model used. The question is only for how long. 2. It's a matter of quality of implementation for kernel, for how long it may have to run without causing scheduler to be invoked. On SMP, it's even less of a problem as long as there is no global lock (what you are probably pretending to be describing). 3. On system with preemptive kernel, latency is reduced, while performance mostly stays the same or decreases due to more context switches while performing the same work. Please note that in Unix, a process will be woken up sooner if another process is trying to communicate with it, so "pipeline" processing stays optimal regardless of the scheduler invokation model. Process sleep time is not a matter of performance or scalability but latency, and it was long ago solved in all Unix-like systems without affecting their overall design. 4. wait() is a system call, so I seriously doubt that any Unix used such function name for an equivalent of sched_yield().
Nah. I don't work for them. But I am forced to ship a mulit-platform library at work and have to deal with shitty unix design daily. All people like you should be laughed at and ridiculed.
I have seen plenty of "multi-platform" development that was actually Windows development with thin wrapping that shoehorns it into all other systems. For those projects, indeed, nothing but Windows works because they follow a broken Windows-oriented application design. We need less of those projects and less of developers with Windows-bent minds.
Its obvious you have never looked at the shortcomings this shit called UNIX. You are nothing but a cheerleader with an empty head.
Over whole 90's I couldn't read half a kilobyte of any computer-related text without seeing anti-Unix propaganda stuffed in it by people like you. It was full of shit then, and it is full of shit now.
Process switching causes TLB and other context flushes. This breaks almost all CPU speculative execution.
That depends on the hardware and OS, and may be applicable to context switching for processes, threads or even simple interrupts handling. OS and hardware design is supposed to achieve as little invalidation as possible, however you, knowing nothing but Windows, believe that context switch between processes is a horribly heavyweight operation everywhere.
Synchronizing shared memory between processes is expensive.
Shared memory is not synchronized, you dolt -- it's physically shared. Cache is synchronized, by hardware. Access to writable shared memory is expensive to synchronize, what is my whole point -- it is avoided through use of interprocess communication.
But the fact is traditional UNIX design does not exist anymore. Linux and other modern UNIX based OSs have already worked around the horrible UNIX design via hacks and patches. Linux famously has struggled and continues to struggle on SMP/Multi-core systems.
You know absolutely nothing about Unix and Linux design. All modern operating systems went from single-CPU to multi-CPU design by establishing a clumsy common kernel lock, then splitting it and switching to other synchronization mechanisms wherever possible. This had absolutely nothing to do with OS design, and was more relevant to things like interrupt handling, where hardware design forces resources to be shared regardless of the software developers' intentions. Some monstrosities already had billions of tiny little locks in place because their design sucked ass on any number of CPUs, however that did not help them to achieve anything useful.
How cute. This one thinks Windows and UNIX are the only two operating systems.
No, there were two kinds of operating systems -- "Unix-like" and "horrible shit". Windows is firmly in the second category. So is VMS, but for other reasons.
While there are much better designs than NT.. NT design is superior to Linux in every single aspect.
For all practical purposes, there is no such thing as "NT design". NT kernel was developed in hope to create and follow some sane design, however all advantages were immediately and completely negated by placing a horrible piece of shit Win32 as the only interface available to applications. If there are any remnants of sanity in NT/2000/XP/... line of Windows, they are buried under piles of crap.
Linux is like the low-quality made-in-china shit that everybody uses because its free/cheap.
I see, Microsoft started another "Get the Facts" campaign. Die in a fire.
Maybe we should go back to UNIX design with single threaded
Unix always had processes with efficient FIFO-style communications and IO-controlled scheduling implemented between them. The idea of using shared memory (what would be an equivalent of multithreading) in such environment was seen as a very special case for exchanging bulk data or handling shared read-only resources.
The idea of this design was exactly the same as what was described in the article -- reduce the amount of things to track, keep private data to whatever limited scope it belongs. Plus, of course, security because Unix processes also provide security boundaries.
Threads were always seen as a horrible, unsafe hack, justified more often by Windows upbringing of the developer than by any legitimate advantages.
non-premptive kernels
Are you ignorant or stupid?
with horrible scaling properties
Over the whole history, Unix-based and Unix-like systems were, and remain superior in performance and scalability over Windows.
No. It's a stupid name for long-running tasks running in a separate context and calling a handler on completion (in unspecified context because people who define this stuff are stupid).
It also has nothing to do with anything being discussed.
The great technology inspired by illustrous Windows developers building the whole applications as everything-should-access-everything model, was abandoned!
These politicians have forgotten from where they came.
From US "friends" that completely subverted former "Solidarnost" leaders by creating an US-dependent government, and turning Poland into the greatest US sycophant in Europe, not surpassed even by Kosovo Albanians more than a decade later?
Countries of Warsaw Pact, of all things, were least concerned with foreign "IP law". Considering that actual Warsaw Pact was a military treaty, and there was no way to exchange military technology with "The West" legally, it would be strange if it was otherwise.
No. You're talking about applying punishment to the very people who are responsible for enforcing punishments.
Contrary to some opinions, it is possible to have someone watching the watchmen.
You simply can't deal with people like that the same way as other people -- the jail is run by the same person you are trying to put in jail.
And yet the same people like yourself, claim that businesses that are run by the same people as people who run other businesses, would efficiently compete against each other instead of colluding at every opportunity.
The reality is, just having the same job does not mean that those people can't hate each other's guts. Just look at the prisoners and their undying love for each other.
How is one related to another? Integrity. If you are willing to violate one law (requiring a warrant), then it is reasonable to suspect they might violate another (falsifying evidence). If you aren't willing to play by the rules, you can't be trusted and therefore your evidence is suspect.
This makes absolutely no sense outside of some fantasy world. If cops were guaranteed to be honest, there would be no need for rules and laws that regulate police behavior in the first place -- those things exist to keep people from being harassed and abused, not to keep the guilty from being prosecuted. The only reason why all those things exist is because "integrity" is not something that can be relied upon.
This is a mess of unrelated statements that don't seem to have much bearing on your conclusion.
No, it's not. You don't even try to analyze any of the issues involved, and merely parrot propaganda formulas.
Ten unrelated people in this situation are actually related. They're all cops. You don't need a lap cat or a smoky room to make a conspiracy. The fact that cops hesitate to report on or testify against each other is fairly well established.
There are plenty of legal systems where they are not -- for example, they may be required to be representatives of the public, lawyers representing the accused, or they have to come from a different law enforcement agency, court, etc. Just because US has a dysfunctional legal system, does not mean that this is how things should be done.
And finally, the trustworthiness of evidence should absolutely "be evaluated by judging the honesty of one person"! You're familiar with the analogy of the chain and the weakest link?
If the system that is intended to be trustworthy can be defeated by a single dishonest person, the system is worthless.
The government is a tool wielded by the rich. Why are you so anxious to sharpen that tool?
The people who would be responsible for punishing the cops are ultimately the cops. If you can't trust them to not break the law, how could you trust them to punish each other for breaking the law.
That's bullshit, you are making assumption that it's harder to lie about following a procedure rather than to fake evidence after following a procedure.
You can not absolutely trust anyone, including cops and judges. This is why everything should be handled by multiple people with verifiable paper trail and other kinds of documents. One person has a somewhat high probability of being a crook, ten unrelated people recording and documenting the search would have to be a part of enormous conspiracy to be all crooks. Trustworthiness of evidence should not be evaluated by judging the honesty of one person.
Also, while I agree that tainting evidence could let guilty persons go free, it also serves to protect the innocent from overzealous investigators.
No. All it does is follow the ridiculous "Let's weaken the government so we won't have to improve it" A.K.A. "Government should not be more powerful than rich people". What is the root of the problem.
Maybe then cops that drive within speed limit should be rewarded? By imprisoning their mothers in law until they do something wrong -- a great incentive, and makes about as much sense.
It protects the innocent by disincentivizing the collection of evidence through illegal means.
No, it does not. If It was, there would be severe punishment for people involved in "collection of evidence through illegal means". Now, the people responsible get a slap in the wrist, but society is punished as a whole. It's one of those "clever hacks" that look great on paper but never work.
No. If a cop is willing to break the law to get a conviction, is he also willing to fabricate evidence to obtain a conviction? How do you know?
How is one related to the other? If a cop can convincingly fabricate evidence, then it won't look like it is illegally obtained anyway. Do you really think that there won't be a sufficient deterrent in a system where cops are MORE SEVERELY punished for breaking the law even if the evidence they obtained is good?
Throwing out illegally obtained evidence protects the innocent from being violated by the police when the police only have a hunch that someone is a criminal.
No, it does not. Police already invaded his privacy, this can not be reversed any more than any other invasion of privacy, so the only recourse is to punish the invader. If the victim also happens to be guilty in something and that can be proven by evidence, then both he and police are responsible, one crime does not cancel the other.
Punish the people who break the law, punish cops who break the law more severely because they are given more trust, but keep the evidence.
And here you have the reason for 'tainted evidence' rule - cops are not punished more severely. They are punished very lightly or not at all.
But throwing out the evidence punishes not the cops or prosecutors but the society as a whole. It makes no sense, it only serves the interest of criminals -- collude with cops, taint all evidence, then taint all evidence of tainting the evidence, and everyone goes free.
But it does not operate on facts. It operates on two sides (prosecution and defence) playing tug of war.
If this is all that it does, it's not justice. You can just as well replace it with trial by combat. Would fit really well into your dominant religion, too -- god is supposed to help the righteous or something.
Same was said about people who pointed out the same about Inquisition (except with more killing and violence, of course).
Whatever it is, it couldn't have happened to a more deserving company.
NOTREA~1.TXT
Just like any other robber baron.
Nothing anyone and everyone (that is, the whole mankind) can do for a foreseeable future (100-200 years) can reverse the amount of harm Microsoft inflicted on mankind. It made billions of people stupid, it infected their minds, the whole culture with Microsoft's idea of computer being a fussy stupid creature suitable only for entertainment. This is not going to be fixed until all knowledge of Windows is expunged from our collective knowledge and culture.
Its obvious what I meant by synchronization. You have to protect concurrent write-access across processes.
Actually, when shared memory is used for interprocess communications, you just should avoid concurrent write access (or write concurrent with read) like the plague. Then, if you can't avoid it, you should check if you are not, by any chance, an idiot, and if so, leave software development forever. Only then, if you have a reliable confirmation that it's unavoidable and you are not an idiot, you should think of a locking scheme.
lol IPC. lol. Seriously? have you written a single high performance application in your life? Any IPC overhead will reduce performance compared to shared memory via threads.Also IPC has to implemented through kernel threads causing even more horrible usermode to kernel mode switching.
Actually yes, I did. Unix pipes and sockets are considered to be "I/O" and affect scheduler, so it can optimize the timing and order of waking up the processes involved. Shared memory is considered memory access, and does not affect anything at all unless it's unlucky enough to cause a page-in, so actual scheduling happens in locking/semaphores. In its turn, multitude of semaphores (managed explicitly by applications but all affecting the scheduler) causes suboptimal scheduling compared to scheduler-managed waiting/sleep by applications (one state per file descriptor).
On multicore/multi-CPU systems the superiority of the Unix model is even more noticeable because processes can avoid sleeping even when they are closely related -- kernel just passes data asynchronously. Shared memory can be used for bulk data handling, to reduce copying while all handling of data-passing operations happen asynchronously.
This is not the case on Windows because Windows IPC is written by idiots.
Traditional single processor UNIX design was shitty as hell. All system calls were were blocking in kernel mode for the period of the time slice. Only way around this was to manually release control via wait() (in kernel mode). Linux was the same till 2.4.
Except, of course:
1. From the process' point of view all system calls cause the process to sleep regardless of the model used. The question is only for how long.
2. It's a matter of quality of implementation for kernel, for how long it may have to run without causing scheduler to be invoked. On SMP, it's even less of a problem as long as there is no global lock (what you are probably pretending to be describing).
3. On system with preemptive kernel, latency is reduced, while performance mostly stays the same or decreases due to more context switches while performing the same work. Please note that in Unix, a process will be woken up sooner if another process is trying to communicate with it, so "pipeline" processing stays optimal regardless of the scheduler invokation model. Process sleep time is not a matter of performance or scalability but latency, and it was long ago solved in all Unix-like systems without affecting their overall design.
4. wait() is a system call, so I seriously doubt that any Unix used such function name for an equivalent of sched_yield().
Nah. I don't work for them. But I am forced to ship a mulit-platform library at work and have to deal with shitty unix design daily. All people like you should be laughed at and ridiculed.
I have seen plenty of "multi-platform" development that was actually Windows development with thin wrapping that shoehorns it into all other systems. For those projects, indeed, nothing but Windows works because they follow a broken Windows-oriented application design. We need less of those projects and less of developers with Windows-bent minds.
Its obvious you have never looked at the shortcomings this shit called UNIX. You are nothing but a cheerleader with an empty head.
Over whole 90's I couldn't read half a kilobyte of any computer-related text without seeing anti-Unix propaganda stuffed in it by people like you. It was full of shit then, and it is full of shit now.
Congratulations, you are an idiot.
Process switching causes TLB and other context flushes. This breaks almost all CPU speculative execution.
That depends on the hardware and OS, and may be applicable to context switching for processes, threads or even simple interrupts handling. OS and hardware design is supposed to achieve as little invalidation as possible, however you, knowing nothing but Windows, believe that context switch between processes is a horribly heavyweight operation everywhere.
Synchronizing shared memory between processes is expensive.
Shared memory is not synchronized, you dolt -- it's physically shared. Cache is synchronized, by hardware. Access to writable shared memory is expensive to synchronize, what is my whole point -- it is avoided through use of interprocess communication.
But the fact is traditional UNIX design does not exist anymore. Linux and other modern UNIX based OSs have already worked around the horrible UNIX design via hacks and patches. Linux famously has struggled and continues to struggle on SMP/Multi-core systems.
You know absolutely nothing about Unix and Linux design. All modern operating systems went from single-CPU to multi-CPU design by establishing a clumsy common kernel lock, then splitting it and switching to other synchronization mechanisms wherever possible. This had absolutely nothing to do with OS design, and was more relevant to things like interrupt handling, where hardware design forces resources to be shared regardless of the software developers' intentions. Some monstrosities already had billions of tiny little locks in place because their design sucked ass on any number of CPUs, however that did not help them to achieve anything useful.
How cute. This one thinks Windows and UNIX are the only two operating systems.
No, there were two kinds of operating systems -- "Unix-like" and "horrible shit". Windows is firmly in the second category. So is VMS, but for other reasons.
While there are much better designs than NT.. NT design is superior to Linux in every single aspect.
For all practical purposes, there is no such thing as "NT design". NT kernel was developed in hope to create and follow some sane design, however all advantages were immediately and completely negated by placing a horrible piece of shit Win32 as the only interface available to applications. If there are any remnants of sanity in NT/2000/XP/... line of Windows, they are buried under piles of crap.
Linux is like the low-quality made-in-china shit that everybody uses because its free/cheap.
I see, Microsoft started another "Get the Facts" campaign. Die in a fire.
Maybe we should go back to UNIX design with single threaded
Unix always had processes with efficient FIFO-style communications and IO-controlled scheduling implemented between them. The idea of using shared memory (what would be an equivalent of multithreading) in such environment was seen as a very special case for exchanging bulk data or handling shared read-only resources.
The idea of this design was exactly the same as what was described in the article -- reduce the amount of things to track, keep private data to whatever limited scope it belongs. Plus, of course, security because Unix processes also provide security boundaries.
Threads were always seen as a horrible, unsafe hack, justified more often by Windows upbringing of the developer than by any legitimate advantages.
non-premptive kernels
Are you ignorant or stupid?
with horrible scaling properties
Over the whole history, Unix-based and Unix-like systems were, and remain superior in performance and scalability over Windows.
Proactor pattern? Is that really a thing?
No. It's a stupid name for long-running tasks running in a separate context and calling a handler on completion (in unspecified context because people who define this stuff are stupid).
It also has nothing to do with anything being discussed.
The great technology inspired by illustrous Windows developers building the whole applications as everything-should-access-everything model, was abandoned!
These politicians have forgotten from where they came.
From US "friends" that completely subverted former "Solidarnost" leaders by creating an US-dependent government, and turning Poland into the greatest US sycophant in Europe, not surpassed even by Kosovo Albanians more than a decade later?
Countries of Warsaw Pact, of all things, were least concerned with foreign "IP law". Considering that actual Warsaw Pact was a military treaty, and there was no way to exchange military technology with "The West" legally, it would be strange if it was otherwise.
People who were "fighting Communists" in Poland in 80's were left opposition to Communists.
Then US-backed organizations rolled in rolled in, and subverted everything exploiting "enemy of my enemy" stupidity.
politicians that have a backbone
lol wut
No. You're talking about applying punishment to the very people who are responsible for enforcing punishments.
Contrary to some opinions, it is possible to have someone watching the watchmen.
You simply can't deal with people like that the same way as other people -- the jail is run by the same person you are trying to put in jail.
And yet the same people like yourself, claim that businesses that are run by the same people as people who run other businesses, would efficiently compete against each other instead of colluding at every opportunity.
The reality is, just having the same job does not mean that those people can't hate each other's guts. Just look at the prisoners and their undying love for each other.
How is one related to another? Integrity. If you are willing to violate one law (requiring a warrant), then it is reasonable to suspect they might violate another (falsifying evidence). If you aren't willing to play by the rules, you can't be trusted and therefore your evidence is suspect.
This makes absolutely no sense outside of some fantasy world. If cops were guaranteed to be honest, there would be no need for rules and laws that regulate police behavior in the first place -- those things exist to keep people from being harassed and abused, not to keep the guilty from being prosecuted. The only reason why all those things exist is because "integrity" is not something that can be relied upon.
This is a mess of unrelated statements that don't seem to have much bearing on your conclusion.
No, it's not. You don't even try to analyze any of the issues involved, and merely parrot propaganda formulas.
Ten unrelated people in this situation are actually related. They're all cops. You don't need a lap cat or a smoky room to make a conspiracy. The fact that cops hesitate to report on or testify against each other is fairly well established.
There are plenty of legal systems where they are not -- for example, they may be required to be representatives of the public, lawyers representing the accused, or they have to come from a different law enforcement agency, court, etc. Just because US has a dysfunctional legal system, does not mean that this is how things should be done.
And finally, the trustworthiness of evidence should absolutely "be evaluated by judging the honesty of one person"! You're familiar with the analogy of the chain and the weakest link?
If the system that is intended to be trustworthy can be defeated by a single dishonest person, the system is worthless.
The government is a tool wielded by the rich. Why are you so anxious to sharpen that tool?
"THIS IS WHAT LIBERTARIANS ACTUALLY BELIEVE."
The people who would be responsible for punishing the cops are ultimately the cops. If you can't trust them to not break the law, how could you trust them to punish each other for breaking the law.
That's bullshit, you are making assumption that it's harder to lie about following a procedure rather than to fake evidence after following a procedure.
You can not absolutely trust anyone, including cops and judges. This is why everything should be handled by multiple people with verifiable paper trail and other kinds of documents. One person has a somewhat high probability of being a crook, ten unrelated people recording and documenting the search would have to be a part of enormous conspiracy to be all crooks. Trustworthiness of evidence should not be evaluated by judging the honesty of one person.
Also, while I agree that tainting evidence could let guilty persons go free, it also serves to protect the innocent from overzealous investigators.
No. All it does is follow the ridiculous "Let's weaken the government so we won't have to improve it" A.K.A. "Government should not be more powerful than rich people". What is the root of the problem.
Maybe then cops that drive within speed limit should be rewarded? By imprisoning their mothers in law until they do something wrong -- a great incentive, and makes about as much sense.
It protects the innocent by disincentivizing the collection of evidence through illegal means.
No, it does not. If It was, there would be severe punishment for people involved in "collection of evidence through illegal means". Now, the people responsible get a slap in the wrist, but society is punished as a whole. It's one of those "clever hacks" that look great on paper but never work.
No.
If a cop is willing to break the law to get a conviction, is he also willing to fabricate evidence to obtain a conviction? How do you know?
How is one related to the other? If a cop can convincingly fabricate evidence, then it won't look like it is illegally obtained anyway. Do you really think that there won't be a sufficient deterrent in a system where cops are MORE SEVERELY punished for breaking the law even if the evidence they obtained is good?
Throwing out illegally obtained evidence protects the innocent from being violated by the police when the police only have a hunch that someone is a criminal.
No, it does not. Police already invaded his privacy, this can not be reversed any more than any other invasion of privacy, so the only recourse is to punish the invader. If the victim also happens to be guilty in something and that can be proven by evidence, then both he and police are responsible, one crime does not cancel the other.
Punish the people who break the law, punish cops who break the law more severely because they are given more trust, but keep the evidence.
And here you have the reason for 'tainted evidence' rule - cops are not punished more severely. They are punished very lightly or not at all.
But throwing out the evidence punishes not the cops or prosecutors but the society as a whole. It makes no sense, it only serves the interest of criminals -- collude with cops, taint all evidence, then taint all evidence of tainting the evidence, and everyone goes free.
But it does not operate on facts. It operates on two sides (prosecution and defence) playing tug of war.
If this is all that it does, it's not justice. You can just as well replace it with trial by combat. Would fit really well into your dominant religion, too -- god is supposed to help the righteous or something.
It really should be the other way around -- keep the evidence, severely punish the people responsible for obtaining it improperly.