No, this is not true. A textbook example would be a water utility. In order to deliver water, it is necessary to invest an enormous amount in capital, i.e. a network of storage sites, pumping stations and pipes to deliver water to the end users. Having two competing water utilities each invest in such capital would be extremely wasteful, and to the extent that water prices reflect the costs of operating and maintaining this infrastructure, competition would result in higher prices, not lower prices, for the buyers of water.
There are many other examples of natural monopolies. In such cases of a natural monopoly, the state typically grants an official monopoly to one supplier, in order to spur development which the threat of competition might otherwise prevent, and to regulate prices. The aim of regulating prices is to provide an incentive for the producer to produce at the socially optimal level, rather than at the level that maximises the producer surplus. In some cases, this even requires subsidies to the producer.
Many arguments in favour of the idea that operating systems are a natural monopoly have been put forward, and whilst the question is not settled, i.e. there is not a consensus, such arguments are often compelling. For example, with ten competing and incompatible operating systems, each with a significant market share, hardware developers would have to invest in developing device drivers for ten different driver interfaces, applications developers would have to invest in porting their software to ten different APIs, etc. This would effectively waste a huge amount of resources, impeding technological progress.
I agree that Windows is not a monopoly in the pure sense, even on the desktop: there are competing operating systems, so by definition, Windows is not a monopoly. However, the market shares of the others in the desktop, but not server, market are so small that it can reasonably be argued that Microsoft's Windows platform has effective monopoly power, in the sense that none of the other OSes is good enough to be a viable alternative. Even Mac OS X, which comes closest, operates on only a very small set of hardware.
Interestingly, if the PC operating systems market is a natural monopoly, then efforts to introduce competition will actually lead to less efficient allocation of resources, i.e. wasteful duplication of effort in developing several device drivers for each hardware component, porting applications to several APIs and so on. This could actually make end users worse off, and impede technological progress.
I agree that there are benefits of a standard OS... but this can be achieved without a Monopoly. For instance if Linux was the standard OS users would have the choice of any number of distributions.
Well, the same advantages of standardising on a single kernel would apply to standardising on a single distribution, desktop environment, office suite, etc. The obvious disadvantage is that a monoculture is far more vulnerable to viruses and whatnot, but on balance this downside seems to be smaller than the upside.
As for the case of Google... their monopoly is by user choice. switching from google to yahoo MS's Live is as simple as typing a different word in your browser (those alternatives have less text to type too). It's not like swapping from Windows to say OSX where you'd have to buy all new hardware and all new applications and then the interface is completely foreign and you can't use half of your files from the old machine, etc.
True, it is easier than switching from, e.g. Windows to Linux. However, the financial value of a search engine is tied to its attractiveness to advertisers, which is tied to its user base. The paying customers, in this case, are not the people who use Google to search, but those who pay to advertise with Google.
If 65% of web users use Google to search, it is a much better place to advertise than the alternatives with 0-35%, 35% assuming a duopoly. This means advertisers will gravitate towards Google, allowing it to offer lower prices to them, spend more on advertising its own brand and simultaneously invest more in crawling/indexing the web, developing other 'free' services for customers, etc. Better brand awareness and more/better services will attract more users, leading to a virtuous cycle of higher market share and higher efficiency.
The search engine market may not necessarily operate this way, and hence may not tend towards a natural monopoly, but it's certainly a possibility. If it does tend towards a natural monopoly, it might also be a good candidate for regulation, given the importance in free societies of free access to information, and the growing role of the web in providing such information.
Its not enough to be better. It has to come pre-installed.
In fact, being better has nothing to do with it. It has to come pre-installed.
You can't separate the two. Linux will only be preinstalled on any significant number if systems if it's as good as or better than Windows. I don't mean in 'better' in technical terms, either, but in terms of supporting the hardware and providing the applications users want.
Why on Earth Microsoft would decide to launch an attack like this is beyond me.
It's very puzzling to me too, unless they know something the general public don't. There's long been this idea in the IT industry of patents as 'mutually assured destruction', which everyone has but nobody uses, except small/desperate companies with nothing to lose.
To me, Microsoft's decision to start suing over patents suggests one of two things. The first is that they foresee eventually losing at least some section of the OS market to Linux, and have become desperate. My guess is this would be the server market, but they may be afraid of eventually losing the desktop market too.
The other possibility is that they believe certain users of FOSS are particularly vulnerable to patent infringement lawsuits, and that the major industry players, such as IBM, will refuse to press the button to defend Linux. This seems less likely to me than the first case, but I don't know how extensively Microsoft's lawyers have discussed this with the lawyers at IBM, etc.
My pet conjecture is that they are in the process of setting themselves up to switch to something completely different for their next OS.
I don't believe it will be Linux. It is more likely they will fork their own copy of one of the BSD's, probably FreeBSD, and then port all their own proprietary stuff on top of that.
In other words, once again, Apple will show them the way.
Why would Microsoft use FreeBSD for anything? It doesn't have any advantages over the NT kernel, and in fact is less advanced by most measures. It's only with the 2.6 kernel that Linux has become, in most ways, comparable to the NT kernel, and FreeBSD is well behind Linux.
The real risk to Microsoft is that some other OS becomes as good as Windows. Almost every other OS is a lot cheaper than Windows, most are actually given away freely, so the only reason people buy Windows is because it's better, i.e. supports more hardware, has more applications available, etc. If Linux ever catches up with Windows, everyone will switch to it, since it's free, and half of Microsoft's business will disappear.
They're not going to "sue Linux" or even sue OSS projects directly; they're going to go after people who actually use OSS in their businesses, just like SCO did. They'll probably just go down a list of people who are known to be using Linux and who haven't bought dubious licenses from MS/Novell, and who don't have a lot of resources to spare on a legal battle, and let the milking begin.
What I can't understand is how they can imagine that this won't create a huge amount of hostility towards them from customers or potential customers. If I were running a business and Microsoft sued me for using Linux, it would guarantee I'd never buy any Microsoft product, at least not for a very long time.
Maybe their plan is only to go after those they know are not and will never be their customers anyway, e.g. Google. Still, I can't imagine it won't anger some customers or potential customers too, even if they aren't directly targeted.
Which meant that we went through an eCommerce site where we filled our carts and ran through "checkouts" that stated we owed $0.00, which seemed funny at the time. Now I know several hundred copies of Vista showed up as "sold" when they weren't really.
That wouldn't have any impact on the financial results, which are what investors care about, and which are what have been ahead of expectations. If Vista really isn't selling well, there must be some news source somewhere reporting actual figures, but everything I've read has, in financial terms, been positive.
This is MS hearing as I have, that everyday people are curious about Linux/Macs after hearing about what a disaster Vista is becoming.
I've read a lot of comments like this on Slashdot, but everything I've read in the financial press about Vista's sales performance has been positive. Can you point to any actual data suggesting Vista isn't selling/popular, or is this just a 'feeling' you have?
Most of microsoft's money is on paper in the value of their stock and furture business.
No, this is not true. When people speak of Microsoft's $30 bn in cash, this is exactly what it is: cash, cash equivalents and short-term investments that can be directly converted into cash. It has absolutely nothing to do with Microsoft's share price, or with future business.
Perhaps you're thinking of Bill Gates's wealth of $50 bn or whatever it is. I would expect much of that is made up of Microsoft shares, so a change in the share price would change his net worth, but that's completely separate from Microsoft's enormous cash hoard.
I agree, to some extent. However, I would like an Internet-based data store, where I could save all of my files and so on, instead of storing them all locally. This would of course require guarantees about security and availability.
With data accessible from anywhere, a natural extension is applications from anywhere. I would of course prefer local applications where possible, in the same way I prefer a local IMAP mail client to the web interface offered by my email provider. However, the new beta 'web 2.0' client to my mailbox is good enough that I don't really miss my normal IMAP client so much.
I agree that being small makes countries more democratic. The EU might be a threat to democracy if it had more power, but in economic terms, it is only a tiny part of GDP, a few percentage points at most, whereas many national governments are over half. It has extensive powers in creating regulations, but as a state apparatus, the EU is actually very small.
I think most economists will agree that there are natural monopolies, i.e. markets which tend naturally towards monopoly, without any intervention from the state, because a single supplier is the most efficient way of meeting demand. With the scale advantages of a standardised computing platform, i.e. the Intel/Windows PC, the CPU and OS markets can perhaps be described as such.
Intel mostly deflected regulation of the CPU market by licensing its x86 architecture to AMD, but all of the other competitors have more or less fallen away. Without Intel's licensing of x86 to AMD, I suspect AMD would have fallen away too, and Intel would have developed a monopoly or near-monopoly in personal computer CPUs. It would probably then have been sued/regulated.
As for Microsoft, even though Microsoft Windows is not a monopoly in the strict sense, because there are competitors, it is dominant enough to be effectively a monopoly in practice. Nevertheless, it is important to remember that the monopoly refers to the Windows OS, not to Microsoft itself, which produces products other than Windows. In any case, it can be argued that the benefits of standard operating system make the market a natural monopoly.
If a monopoly is the most efficient model for operating systems, then it is reasonable to allow a monopoly to exist. What got Microsoft into trouble was not this (near) monopoly, but rather the tying of other products to it. The most important was the web browser. Web browsers may, like operating systems, tend towards a natural monopoly, but using one monopoly (OS) to acquire another (web browsers) is considered abuse of a monopoly position.
As for the topic of this article, search engines may be yet another area in which there is a tendency towards a natural monopoly. The question then becomes, should the market be allowed to develop into a monopoly one? If a monopoly is the most efficient way of providing web searching, perhaps it should. However, efficiency is not the only concern here.
Even if a monopoly is the most efficient way of providing web searching, that doesn't mean it is the best way. Do we really want a private (and foreign for most of us) firm to control our access to the information stored on the web? I don't know. However, control of information is far more ripe for abuse than control of a CPU architecture or an operating system, so I find the idea of a Google monopoly more worrying than the ones that have come so far. I would be more comfortable with some sort of state oversight of information, particularly with respect to the protection of privacy.
I would say this is much more true in the USA than in Europe, perhaps with the exception of the UK, and I think the electoral systems in the USA and UK are in part behind the lack of trust in the state. In general, I trust the state in my country, and if I had to choose between the state and a corporation, I would say I trust the state more, because it's democratically elected, and has no profit motive.
I was quite pleasantly surprised to see the Vista SDK includes a C/C++ compiler: Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86. I don't want to install a whole IDE, so I'm glad it's no longer necessary.
Microsoft had always been weak here, compared to Linux, but I've read that, in the 1990s, IBM charged a lot for the OS/2 SDK, and so did the Unix vendors for their SDKs, so I guess it's relative. If Unix had been cheap/free, including SDKs, there would of course be no Linux at all, so maybe Microsoft are slowly learning.
I don't know about Apple before OS X, but today they are good at giving out SDKs and such, although they use GCC, so have to give that away. Back in the 90s, however, I think the Free Software Foundation had to sue NeXT to get their changes to GCC released in source form, but at least NeXT, now Apple, learnt the lesson.
If you've got malicious code running that's able to create files with arbitrary names on your local file system, and perhaps even enable case sensitivity, you've got bigger problems than the names that code decides to use. It sounds to me like one of the typical examples of complaining that a machine that's already been compromised by a virus can be attacked by it: well, naturally.
To some extent I'm tempted to agree with your point about matching, i.e. that 'FOO' should match 'FOO', whether or not 'foo' also exists. However, you then run into a situation where the matching isn't actually case-insensitive. This means that two calls which are documented to have the same effect, e.g. open("foo") and open("FOO"), will actually have different results, so you've just exchanged one problem for another. On the whole, I think I'd actually lean towards having the same file always returned, if case insensitivity is enabled.
The approaches would be very similar if you could choose whether you wanted the Windows subsystem to be case sensitive or not. The fact that you can't means that 99.99% of the time you can't have case sensitivity, since everything uses the Windows subsystem.
The reason for doing this on OS X is for compatibility with Unix software, which Windows does via its Unix subsystem, and which also offers either mode of operation. There are also, again, problems with either choice. If you allow the choice of case-preserving or case-sensitive, as on OS X or the Unix subsystem on Windows, you'll have software that will run one way on some systems and another way on others. Is that a good trade-off? Maybe, but the answer is far from obvious. Conversely, if you don't allow the choice, as with Win32, you'll have consistent behaviour, but problems of interoperability with other environments, e.g. non-Win32 processes creating files that Win32 processes can't access.
On both Windows and OS X, if you enable case sensitivity, you're going to potentially run into problems, because your system will behave differently to the default configuration. On OS X, this includes Mac applications that assume case insensitivity in file name matching, but are suddenly faced with case sensitivity (e.g. the case used in hard-coded paths, configuration files, etc. will suddenly matter). On Windows, you're going to run into problems with files created in one subsystem being inaccessible to processes in another. I'm not sure which is worse.
Ladies and gentlemen, can you say, "security hole"?
Yes, to a point. However, the Windows default is to use case-preserving but not case-sensitive for both. If you decide to enable full case sensitivity for the Unix subsystem, the setup presents a warning about making sure you understand the security implications, etc.
Overall, I'm not sure I consider it a security hole per se, just confusing behaviour that can be a security hole if you enable it without understanding it, keeping in mind that the default behaviour is not to enable it. I do understand it, so the only way I'll end up with a file I can't access from a Win32 process is if I deliberately create it in a Unix process. It may be I've missed something, but as long as I know what my Unix and Win32 processes are doing, I don't see a problem.
The fact that the Windows subsystem cannot access certain files is not a necessary byproduct of the overall approach NT takes, and is instead just a byproduct of the way NTFS does case-insensitive matching. I consider this a bug in NTFS.
No, I agree, it's not a necessary byproduct, since Win32 could just as easily not pass the case-insensitive flag to the NT APIs it calls. However, it's clearly a deliberate choice, and I can't see how it really has anything to do with NTFS. I mean, I think all you have to do to change the behaviour is change the flags CreateFileW (Win32) passes to NtCreateFile (NT).
I think OS X is closest to being "right" of any OS I know
How is its approach different to Windows? Isn't it a global setting of either case-preserving or case-sensitive?
I think what you're really looking for is not a case insensitive file system. I think all you need are tools to navigate the file system that are case insensitive by default. In unix terms, you could set an environment variable somewhere such that "vi Readme" and "vi readme" would both open the same file. You'd need something to disambiguate cases where there was a clash, a but like the way zsh prompts you for misspelled commands.
That's more or less how Windows works, except that there's no way to turn off the case-insensitive matching behaviour of Win32. The file system, NTFS, preserves case, and the system will do case-sensitive matching if the environment subsystem calls for it. This is used, for example, by the Unix subsystem, which can create and match files that differ only by case, on NTFS file systems.
As I understand it, the Unix subsystem on Windows can operate in either case-preserving mode, like Win32, or case-sensitive mode, like other Unix systems. The Win32 subsystem, however, only operates in case-preserving mode, which means Unix processes can create files that Win32 processes are unable to access. Since the underlying NT APIs used by the Unix and Win32 subsystems are the same, allowing Win32 to operate in case-sensitive mode too would probably be a simple matter of modifying an argument passed to the NT API by the Win32 call. However, I don't expect it to happen, since the only people who really want full case sensitivity probably come from Unix backgrounds anyway, and can get it via the Unix subsystem.
On the whole, then, I agree with you that people don't really want the file system itself to be case insensitive, they just want the layer above it to be case insensitive, like Win32, or at least offer case insensitivity as an option, like the Unix subsystem on Windows, but perhaps with finer granularity than a global setting.
Microsoft's NTFS is also case-preserving, but not case-sensitive by default. It can be set to operate in case-sensitive mode too, but Win32 doesn't support case-sensitive operation, so only other subsystems, e.g. the Unix subsystem, can actually take advantage of it.
Surely you're not suggesting that file names and C/C++ variable names should use the same conventions, are you? C/C++ variables, for example, can't contain spaces, or a variety of symbols with special meanings in the language. Reimposing restrictions of this kind on file names would be a huge step backwards. There are also other possibilities for your example, e.g. using prefixes or suffixes for types, macros, etc. Using case is only a convention, and only seems normal because it is a convention.
In general, computer programmers who are writing in C/C++ are used to different naming conventions to those used by computer users deciding what to call a file or directory. To a C/C++ programmer, it may seem intuitive to use differences in case to distinguish amongst similar but related files, and also to avoid spaces and other special characters. To the average user, however, such practices would be very counter-intuitive indeed.
If this is the case, it sounds like it amounts to a pretty limited set of changes to Windows, especially since many of the changes necessary have already been available on network shared drives.
From the standpoint of the OS itself, I think you're probably right. User settings should also be fairly easy to move, by copying the user's profile directory, which includes the per-user registry hive. It's basically analogous to copying the user's home directory on Unix, and Microsoft already allow Windows profiles to "roam" across machines in a Windows domain, including distinguishing between the parts of the profile that should roam, e.g. settings, and those that shouldn't, e.g. temporary files.
The difficulty, as I see it, is in making applications portable, without losing all the advantages of modularity, code sharing, separation of application code from machine-specific settings, etc. One option would be to provide a new framework which applications developers could take advantage of, but if Microsoft want to support all the existing applications, I suspect it would take a considerable effort to make it work.
Yes, and as far as I know, Mac OS X hasn't any solution to this problem. Apple's system architects have simply decided to sacrifice some degree of code sharing for the ability to encapsulate applications, to some extent, although the key system libraries are still shared. The disadvantages are things like longer application startup times and higher resource requirements for a given feature set, but it can at least be argued that modern hardware makes these downsides less important than they were, for example, in the 1990s.
Beyond code sharing, if you assume multiple users, you also have to separate the user's data, preferences, etc. from the application. This is the reason for per-user resource files on Unix-like systems and the per-user registry hives on Windows. It's also generally a good idea to separate per-machine data and settings from applications, hence per-machine resource files on Unix and the per-machine registry hive on Windows.
When Microsoft, or Apple for that matter, add new features to their systems, one of the main points is making them easy for the average user to use. Actual new ideas typically emerge in research environments, with the role of production systems being to make those ideas accessible generally.
The idea of roaming applications and user data is certainly not new, but it's not widely used, and nor is there an easy way for the average application developer to explicitly take advantage of it. If Microsoft manage to change those two things (they've tried previously in corporate environments with, for example, roaming user profiles), they'll have achieved something important.
Needless to say, GNU/Linux, etc has ran beautifully on removable media for years. I'm surprised MS didn't go for a specialized Windows CE.
Is that really all they're talking about here? I would think it's more about carrying applications and data, and letting them run transparently on some other installation of Windows.
As an aside, when I was installing Windows XP on my laptop a few years ago, it listed a flash drive I had connected as a potential target drive. I didn't try it, but got the impression it could be installed on removable media.
Re:Tag this article deathofcreationism
on
The Human Mutation
·
· Score: 1
Humans are social animals, like many others. Through our evolution, there were some behaviours that were beneficial in terms of helping society, not just each individual, to survive and prosper, and others that were harmful. The ones with an emotional predisposition towards the former (right) were better able to survive in societies than the ones with an emotional predisposition towards the latter (wrong). It's similar to the way in which we find some environments, e.g. forests and hilltops, more beatiful than others: these environments provided an improved chance of survival, so the ones who happened to like them, and thus chose to live in them, were more likely to survive and pass on their genes.
In any case, humans aren't the only animals to display notions of right and wrong. Certain other primate and social bird species have been shown to have social norms regarding what is right and what is wrong. In some cases, this even includes punishment of those who do wrong.
For most of history, until relatively recently, it was not necessary to declare enslaved peoples as inferior, but only to have the strength to enslave them. The need for a 'sub-human' classification came only with the idea of universal human rights, because it was necessary to reconcile the two: i.e., if you claim to believe in universal human rights of the Western sort, you cannot also believe in slavery, unless those being enslaved are somehow not fully human. Even today, many non-Western societies do not share our ideas of universal human rights, so see nothing wrong with slavery and such, nor any need to justify such things by claiming the enslaved or oppressed are 'sub-human'.
There are many other examples of natural monopolies. In such cases of a natural monopoly, the state typically grants an official monopoly to one supplier, in order to spur development which the threat of competition might otherwise prevent, and to regulate prices. The aim of regulating prices is to provide an incentive for the producer to produce at the socially optimal level, rather than at the level that maximises the producer surplus. In some cases, this even requires subsidies to the producer.
Many arguments in favour of the idea that operating systems are a natural monopoly have been put forward, and whilst the question is not settled, i.e. there is not a consensus, such arguments are often compelling. For example, with ten competing and incompatible operating systems, each with a significant market share, hardware developers would have to invest in developing device drivers for ten different driver interfaces, applications developers would have to invest in porting their software to ten different APIs, etc. This would effectively waste a huge amount of resources, impeding technological progress.
I agree that Windows is not a monopoly in the pure sense, even on the desktop: there are competing operating systems, so by definition, Windows is not a monopoly. However, the market shares of the others in the desktop, but not server, market are so small that it can reasonably be argued that Microsoft's Windows platform has effective monopoly power, in the sense that none of the other OSes is good enough to be a viable alternative. Even Mac OS X, which comes closest, operates on only a very small set of hardware.
Interestingly, if the PC operating systems market is a natural monopoly, then efforts to introduce competition will actually lead to less efficient allocation of resources, i.e. wasteful duplication of effort in developing several device drivers for each hardware component, porting applications to several APIs and so on. This could actually make end users worse off, and impede technological progress.
If 65% of web users use Google to search, it is a much better place to advertise than the alternatives with 0-35%, 35% assuming a duopoly. This means advertisers will gravitate towards Google, allowing it to offer lower prices to them, spend more on advertising its own brand and simultaneously invest more in crawling/indexing the web, developing other 'free' services for customers, etc. Better brand awareness and more/better services will attract more users, leading to a virtuous cycle of higher market share and higher efficiency.
The search engine market may not necessarily operate this way, and hence may not tend towards a natural monopoly, but it's certainly a possibility. If it does tend towards a natural monopoly, it might also be a good candidate for regulation, given the importance in free societies of free access to information, and the growing role of the web in providing such information.
To me, Microsoft's decision to start suing over patents suggests one of two things. The first is that they foresee eventually losing at least some section of the OS market to Linux, and have become desperate. My guess is this would be the server market, but they may be afraid of eventually losing the desktop market too.
The other possibility is that they believe certain users of FOSS are particularly vulnerable to patent infringement lawsuits, and that the major industry players, such as IBM, will refuse to press the button to defend Linux. This seems less likely to me than the first case, but I don't know how extensively Microsoft's lawyers have discussed this with the lawyers at IBM, etc.
The real risk to Microsoft is that some other OS becomes as good as Windows. Almost every other OS is a lot cheaper than Windows, most are actually given away freely, so the only reason people buy Windows is because it's better, i.e. supports more hardware, has more applications available, etc. If Linux ever catches up with Windows, everyone will switch to it, since it's free, and half of Microsoft's business will disappear.
Maybe their plan is only to go after those they know are not and will never be their customers anyway, e.g. Google. Still, I can't imagine it won't anger some customers or potential customers too, even if they aren't directly targeted.
Perhaps you're thinking of Bill Gates's wealth of $50 bn or whatever it is. I would expect much of that is made up of Microsoft shares, so a change in the share price would change his net worth, but that's completely separate from Microsoft's enormous cash hoard.
With data accessible from anywhere, a natural extension is applications from anywhere. I would of course prefer local applications where possible, in the same way I prefer a local IMAP mail client to the web interface offered by my email provider. However, the new beta 'web 2.0' client to my mailbox is good enough that I don't really miss my normal IMAP client so much.
I agree that being small makes countries more democratic. The EU might be a threat to democracy if it had more power, but in economic terms, it is only a tiny part of GDP, a few percentage points at most, whereas many national governments are over half. It has extensive powers in creating regulations, but as a state apparatus, the EU is actually very small.
Intel mostly deflected regulation of the CPU market by licensing its x86 architecture to AMD, but all of the other competitors have more or less fallen away. Without Intel's licensing of x86 to AMD, I suspect AMD would have fallen away too, and Intel would have developed a monopoly or near-monopoly in personal computer CPUs. It would probably then have been sued/regulated.
As for Microsoft, even though Microsoft Windows is not a monopoly in the strict sense, because there are competitors, it is dominant enough to be effectively a monopoly in practice. Nevertheless, it is important to remember that the monopoly refers to the Windows OS, not to Microsoft itself, which produces products other than Windows. In any case, it can be argued that the benefits of standard operating system make the market a natural monopoly.
If a monopoly is the most efficient model for operating systems, then it is reasonable to allow a monopoly to exist. What got Microsoft into trouble was not this (near) monopoly, but rather the tying of other products to it. The most important was the web browser. Web browsers may, like operating systems, tend towards a natural monopoly, but using one monopoly (OS) to acquire another (web browsers) is considered abuse of a monopoly position.
As for the topic of this article, search engines may be yet another area in which there is a tendency towards a natural monopoly. The question then becomes, should the market be allowed to develop into a monopoly one? If a monopoly is the most efficient way of providing web searching, perhaps it should. However, efficiency is not the only concern here.
Even if a monopoly is the most efficient way of providing web searching, that doesn't mean it is the best way. Do we really want a private (and foreign for most of us) firm to control our access to the information stored on the web? I don't know. However, control of information is far more ripe for abuse than control of a CPU architecture or an operating system, so I find the idea of a Google monopoly more worrying than the ones that have come so far. I would be more comfortable with some sort of state oversight of information, particularly with respect to the protection of privacy.
I would say this is much more true in the USA than in Europe, perhaps with the exception of the UK, and I think the electoral systems in the USA and UK are in part behind the lack of trust in the state. In general, I trust the state in my country, and if I had to choose between the state and a corporation, I would say I trust the state more, because it's democratically elected, and has no profit motive.
Microsoft had always been weak here, compared to Linux, but I've read that, in the 1990s, IBM charged a lot for the OS/2 SDK, and so did the Unix vendors for their SDKs, so I guess it's relative. If Unix had been cheap/free, including SDKs, there would of course be no Linux at all, so maybe Microsoft are slowly learning.
I don't know about Apple before OS X, but today they are good at giving out SDKs and such, although they use GCC, so have to give that away. Back in the 90s, however, I think the Free Software Foundation had to sue NeXT to get their changes to GCC released in source form, but at least NeXT, now Apple, learnt the lesson.
To some extent I'm tempted to agree with your point about matching, i.e. that 'FOO' should match 'FOO', whether or not 'foo' also exists. However, you then run into a situation where the matching isn't actually case-insensitive. This means that two calls which are documented to have the same effect, e.g. open("foo") and open("FOO"), will actually have different results, so you've just exchanged one problem for another. On the whole, I think I'd actually lean towards having the same file always returned, if case insensitivity is enabled.
The reason for doing this on OS X is for compatibility with Unix software, which Windows does via its Unix subsystem, and which also offers either mode of operation. There are also, again, problems with either choice. If you allow the choice of case-preserving or case-sensitive, as on OS X or the Unix subsystem on Windows, you'll have software that will run one way on some systems and another way on others. Is that a good trade-off? Maybe, but the answer is far from obvious. Conversely, if you don't allow the choice, as with Win32, you'll have consistent behaviour, but problems of interoperability with other environments, e.g. non-Win32 processes creating files that Win32 processes can't access.On both Windows and OS X, if you enable case sensitivity, you're going to potentially run into problems, because your system will behave differently to the default configuration. On OS X, this includes Mac applications that assume case insensitivity in file name matching, but are suddenly faced with case sensitivity (e.g. the case used in hard-coded paths, configuration files, etc. will suddenly matter). On Windows, you're going to run into problems with files created in one subsystem being inaccessible to processes in another. I'm not sure which is worse.
Overall, I'm not sure I consider it a security hole per se, just confusing behaviour that can be a security hole if you enable it without understanding it, keeping in mind that the default behaviour is not to enable it. I do understand it, so the only way I'll end up with a file I can't access from a Win32 process is if I deliberately create it in a Unix process. It may be I've missed something, but as long as I know what my Unix and Win32 processes are doing, I don't see a problem.
No, I agree, it's not a necessary byproduct, since Win32 could just as easily not pass the case-insensitive flag to the NT APIs it calls. However, it's clearly a deliberate choice, and I can't see how it really has anything to do with NTFS. I mean, I think all you have to do to change the behaviour is change the flags CreateFileW (Win32) passes to NtCreateFile (NT). How is its approach different to Windows? Isn't it a global setting of either case-preserving or case-sensitive?As I understand it, the Unix subsystem on Windows can operate in either case-preserving mode, like Win32, or case-sensitive mode, like other Unix systems. The Win32 subsystem, however, only operates in case-preserving mode, which means Unix processes can create files that Win32 processes are unable to access. Since the underlying NT APIs used by the Unix and Win32 subsystems are the same, allowing Win32 to operate in case-sensitive mode too would probably be a simple matter of modifying an argument passed to the NT API by the Win32 call. However, I don't expect it to happen, since the only people who really want full case sensitivity probably come from Unix backgrounds anyway, and can get it via the Unix subsystem.
On the whole, then, I agree with you that people don't really want the file system itself to be case insensitive, they just want the layer above it to be case insensitive, like Win32, or at least offer case insensitivity as an option, like the Unix subsystem on Windows, but perhaps with finer granularity than a global setting.
Microsoft's NTFS is also case-preserving, but not case-sensitive by default. It can be set to operate in case-sensitive mode too, but Win32 doesn't support case-sensitive operation, so only other subsystems, e.g. the Unix subsystem, can actually take advantage of it.
In general, computer programmers who are writing in C/C++ are used to different naming conventions to those used by computer users deciding what to call a file or directory. To a C/C++ programmer, it may seem intuitive to use differences in case to distinguish amongst similar but related files, and also to avoid spaces and other special characters. To the average user, however, such practices would be very counter-intuitive indeed.
The difficulty, as I see it, is in making applications portable, without losing all the advantages of modularity, code sharing, separation of application code from machine-specific settings, etc. One option would be to provide a new framework which applications developers could take advantage of, but if Microsoft want to support all the existing applications, I suspect it would take a considerable effort to make it work.
Beyond code sharing, if you assume multiple users, you also have to separate the user's data, preferences, etc. from the application. This is the reason for per-user resource files on Unix-like systems and the per-user registry hives on Windows. It's also generally a good idea to separate per-machine data and settings from applications, hence per-machine resource files on Unix and the per-machine registry hive on Windows.
The idea of roaming applications and user data is certainly not new, but it's not widely used, and nor is there an easy way for the average application developer to explicitly take advantage of it. If Microsoft manage to change those two things (they've tried previously in corporate environments with, for example, roaming user profiles), they'll have achieved something important.
Needless to say, GNU/Linux, etc has ran beautifully on removable media for years. I'm surprised MS didn't go for a specialized Windows CE.
Is that really all they're talking about here? I would think it's more about carrying applications and data, and letting them run transparently on some other installation of Windows.
As an aside, when I was installing Windows XP on my laptop a few years ago, it listed a flash drive I had connected as a potential target drive. I didn't try it, but got the impression it could be installed on removable media.
Humans are social animals, like many others. Through our evolution, there were some behaviours that were beneficial in terms of helping society, not just each individual, to survive and prosper, and others that were harmful. The ones with an emotional predisposition towards the former (right) were better able to survive in societies than the ones with an emotional predisposition towards the latter (wrong). It's similar to the way in which we find some environments, e.g. forests and hilltops, more beatiful than others: these environments provided an improved chance of survival, so the ones who happened to like them, and thus chose to live in them, were more likely to survive and pass on their genes.
In any case, humans aren't the only animals to display notions of right and wrong. Certain other primate and social bird species have been shown to have social norms regarding what is right and what is wrong. In some cases, this even includes punishment of those who do wrong.
For most of history, until relatively recently, it was not necessary to declare enslaved peoples as inferior, but only to have the strength to enslave them. The need for a 'sub-human' classification came only with the idea of universal human rights, because it was necessary to reconcile the two: i.e., if you claim to believe in universal human rights of the Western sort, you cannot also believe in slavery, unless those being enslaved are somehow not fully human. Even today, many non-Western societies do not share our ideas of universal human rights, so see nothing wrong with slavery and such, nor any need to justify such things by claiming the enslaved or oppressed are 'sub-human'.