We are massively overtaxing our planet as is with only 7 billion people on it.
The more we tax the environment, the more damage will be caused in the long run and eventually humanity will suffer as a result. Decreasing birth rates alone is not sufficient, we need to decrease the entire population.
If we cannot sustain 7 billion people, then we cannot sustain 11 billion people.
It automates the setup of the isolated development environment. A company can put a Vagrantfile into a development repository along with any associated setup scripts. As long as the developer has VirtualBox/VMWare Workstation and Vagrant installed, they can type `Vagrant up` from within the repository and it will automatically setup the development environment within the development VM. This is a really easy way to ensure that everyone is working on the same page.
The performance hit does not stem from instruction decoding, so static multiple dispatch and dynamic multiple dispatch don't matter. Rather, the performance hit stems from the fact that most CPUs only execute one thread domain at a time per logical processor. They execute that particular thread until the time slice expires or a system call is made, then switch context to the next thread. Scheduler instructions will not be scheduled at the same time as application instructions since they operate in different contexts.
>From what you are describing, the reason microkernel OSs are slow is the switching from running an unprivileged task (a ring 3 task) to a kernel task (a ring 1 or 0 task). But in that case, given that most modern CPUs are multi-core, doesn't that alleviate that issue?
There are some interesting scheduler hacks that may be done here to take advantage of multi-core resources, but in general, migrating a task from one processor to another has a cycle cost similar to switching tasks, as does making a cross processor call. At the moment, HURD has no support for SMP/SMT.
>Also, most processes don't make full use of the extra cores, but if you have a microkernel OS, can't all that task switching be avoided simply by using, say, different cores? Like use CPU0 for ring0, CPU1 for ring1, and so on (since most systems are quad core or more, and you can then route any system request to particular CPUs dedicated for just that)
An implementation in which one or more processor cores are used purely for handling system related tasks is actually a very effective solution, IBM uses similar implementations in their Z series mainframes. The PS3 also used a similar processing model, the purpose of the PowerPC based PPE is to load and schedule the various SPEs.
The caveat of doing this is that there's still a delay between the time that the system call is issued and the time in which it responds. IBM has solved this by scheduling 4 threads concurrently per processor core in their latest POWER 7+ processors (4 way SMT, similar to Intel's Hyperthreading).
This particular kind of process model wouldn't work too well on a system that wasn't designed for it and performance of highly concurrent applications would suffer as a result of the lost processor core. Modern x86 processors are simply far more suited to hybrid and monolithic kernels than they are towards microkernels. Other architectures such as ARM and PowerPC are better suited towards microkernels. QNX used in BlackBerry's Z10 and Q10 smartphones is a real-time microkernel based operating system and it manages to squeeze out very acceptable levels of performance on Qualcomm's Krait architecture.
The question at this point then is whether or not microkernels are at all relevant for desktop environments anymore. Modern programming techniques and hardware technologies have boosted the security and stability of monolithic and hybrid kernels to the point that the advantages of microkernels have diminished.
>I could imagine a micro kernel, for example, written in Java or similar language running in a VM that enforced fine-grained memory controls, e.g. at the object level. If you used this for memory protection between trusted (e.g. OS level) servers you could avoid the hit of reloading the CPU's page maps. User space separations could be enforced by the CPU for better security.
Microsoft Research has done a lot of work on this exact idea. They even produced a usable operating system
Microkernel operating systems aren't inherently difficult to construct but there's a very noticeable tradeoff between the performance of a hybrid/monolithic kernel and the security/stability of a microkernel.
The performance hit comes from the hardware isolated process model used by modern microprocessors. Whenever an application needs to do something outside of its own scope, such as request additional memory, access shared resources, or interface with a device driver it makes a system call. In a monolithic system this requires the processor to switch from the running task to the kernel task, perform the requested action, and then switch back to the running task. If the kernel needs to access the tasks memory, it can access it through segmentation or shared memory with ease because the kernel in a monolithic system has no access constraints.
In a microkernel system the processor switches from the running task to an interprocess messaging task (part of the microkernel), which then copies the message to the requested server's buffer, switches to the server task, processes the message, switches back to the messaging task, copies the response back to the original client's buffer, and then switches back to the client task.
Task switches are very expensive in terms of CPU cycles, so minimizing them is key to obtaining performance. Hybrid and Monolithic kernels have a massive performance edge on modern processors because they perform a fraction as many task switches and memory operations whenever a system call is performed.
The service provider must have a terms of service which includes provisions for account suspension and termination for repeat offenders. Simply having a TOS isn't sufficient, they also have to "reasonably implement" it. This can be found under 17 USC 512(i). The policing doesn't necessarily have to be pro-active, it just needs to be active. If a plaintiff can demonstrate that a service provider's TOS is merely a façade and that the service provider is not living up to their obligations under the OCILLA then that may help their case.
If I recall correctly, something along these lines was used against Megaupload (don't quote me on that, I'm not overly familiar with the case).
Yup. Youtube has a massive number of programs and features, both automated and manual, which are purpose designed to handle copyrighted content. Users are still figuring out novel ways to get around them (such as mirroring a scene from a movie) but Youtube's Copyright handling is the best that I've ever seen and goes way beyond that required by the DMCA
The DMCA Safe Harbor provision is what allows sites like Youtube to operate. Since Youtube is a fully automated site in which users upload their own content without approval from Youtube on a case-by-case basis, Youtube does not have full control over the content of their website in real time. Without the Safe Harbor provision, any copyrighted material that appears on Youtube would constitute unwillful copyright infringement by Youtube regardless of who put it there. The Safe Harbor provision shields them from primary and secondary liability.
However, obtaining the benefits of the DMCA cannot be done without also adhering to the requirements of the DMCA and the OCILLA (the legal name for the Safe Harbor provision). Several of the requirements set out by these acts include making a good faith effort to prevent copyrighted content from being uploaded or inducing access to copyrighted content. In short, site operators have to perform at least some level of self-policing in order to obtain protection under OCILLA.
In the case of ISOHunt, it's possible to search by various categories including movies, music, applications, etc... as well as view latest releases by the same categories. A quick look at the top torrents, most recent torrents, top cross indexed torrents, and top searches show that the site operators made no effort to prevent copyrighted content from being made accessible.
The court ruled against them not because they engaged in direct infringement themselves, but because they promoted infringement and profited from that infringement. If they wanted the courts to take them seriously, then they shouldn't have displayed "aXXo" and "jaybob" as the top searches on the front page for years on end, especially when those searches yield infringing results. Of the top 1,000 searches on ISOhunt.com right now all of them are in search of either copyrighted content, or downright illegal content.
The availability of games for Linux just exploded but the majority of these games have been available on Windows for years. Some have even been available on Linux for ages already and are simply just migrating to Steam for the sake of doing so. If all these previously available Linux games failed to see a large amount of success on Linux without Steam, it's unlikely that they will sudden explosion in Linux installations with Steam. Linux users tend to be rather savvy and aware individuals by nature, so anyone seriously wanting to acquire these games for either Windows or Linux has already done so.
There's nothing new here. Aside from a very few individuals who simply refuse to run Windows, there's no one running Linux that hasn't played those games already.
What Steam for Linux will achieve though is a stable prototype for Valve's Linux based game console. One of the largest criticisms leveled at Linux is the horrific binary incompatibility between distros. By using a commercial platform that has a consistent environment it will be much easier for Valve to entice developers to port their games to Linux for Steambox or whatever they're calling it. From there, it will still take several steps to get a game running on Fedora, RedHat, CentOS, Ubuntu, Arch, Mint, etc... but at least there will be Steambox as a common Linux based denominator.
The GNU project was started to be a clean-room reimplementation of UNIX. They started by reimplementing the basic behaviours but never got around to implementing a kernel.
It's pretty easy to work on an OS without a kernel as long as you know how that kernel should behave.
The ones I'm familiar with, such as SeaTools, just use DOS as bootable environment. I don't see any real reason they couldn't have used Linux or even a light version of XP if there were no modern DOS. Where there's a competent programmer and a problem, there's a solution.
They use it because a basic DOS distribution is nothing more than a filesystem driver and command line interpreter. There's no hardware abstraction and this allows programs to access device buses without issue, or risk exposing their hardware's service mode to malicious code.
Most projects on this planet, whether they be mechanical, research, software, construction, or anything else, would not be possible without some sort of up front financing.
People need to be paid during development, licences need to be paid for, materials need to be purchased. Companies often incur hundreds of different costs before they ever see a cent of revenue.
I fully understand the skepticism that gets leveled at certain Kickstarter projects but please understand that Kickstarter simply replaces the venture capitalist with the venture consumer.
Venture capitalists don't give a shit about the project itself. They only care about whether or not it meets the required return based on the risk that it poses. If they don't think that a project has any earning potential, they won't invest in it. This actually stops a lot of bad ideas from ever seeing the light of day and provides would be entrepreneurs with valuable business insight that new managers typically lack.
Venture consumers care far more about the project itself rather than the money that they invest in it. They're looking for a return in the form of enjoyment and entertainment ('utility' in economic terms) rather than one that is monetary. Unlike venture capitalists, consumers are often naive about the business world and easily tricked into supporting projects that have no hope of ever seeing the light of day. This has been the reason behind most of the criticisms of Kickstarter, it's too easy to exploit the system.
Anyone can come up with a half decent idea, but not anyone can come up with a team and business plan to implement it. In this case, there's already a product that's been available for more than a decade and is backed by a capable and proven development team. It's likely that they'd be able to get funding from an external source such as a line of credit or VC but since this is a software project, Kickstarter might offer greater benefits.
This only applies to the new GCN architecture (most high end 7000 series cards) and not the older VLIW4/5 cards (which includes low end 7000 series cards and 6000 series cards)
We are massively overtaxing our planet as is with only 7 billion people on it.
The more we tax the environment, the more damage will be caused in the long run and eventually humanity will suffer as a result. Decreasing birth rates alone is not sufficient, we need to decrease the entire population.
If we cannot sustain 7 billion people, then we cannot sustain 11 billion people.
It's a crown corporation
Come on, everyone knows that public sector workers only work for one hour per day. Programmers are no exception.
It automates the setup of the isolated development environment. A company can put a Vagrantfile into a development repository along with any associated setup scripts. As long as the developer has VirtualBox/VMWare Workstation and Vagrant installed, they can type `Vagrant up` from within the repository and it will automatically setup the development environment within the development VM. This is a really easy way to ensure that everyone is working on the same page.
Vagrant is a wrapper for Virtualbox and VMWare Workstation that accelerates the deployment of development environments.
http://www.vagrantup.com/
I don't think so.
The performance hit does not stem from instruction decoding, so static multiple dispatch and dynamic multiple dispatch don't matter. Rather, the performance hit stems from the fact that most CPUs only execute one thread domain at a time per logical processor. They execute that particular thread until the time slice expires or a system call is made, then switch context to the next thread. Scheduler instructions will not be scheduled at the same time as application instructions since they operate in different contexts.
>From what you are describing, the reason microkernel OSs are slow is the switching from running an unprivileged task (a ring 3 task) to a kernel task (a ring 1 or 0 task). But in that case, given that most modern CPUs are multi-core, doesn't that alleviate that issue?
There are some interesting scheduler hacks that may be done here to take advantage of multi-core resources, but in general, migrating a task from one processor to another has a cycle cost similar to switching tasks, as does making a cross processor call. At the moment, HURD has no support for SMP/SMT.
>Also, most processes don't make full use of the extra cores, but if you have a microkernel OS, can't all that task switching be avoided simply by using, say, different cores? Like use CPU0 for ring0, CPU1 for ring1, and so on (since most systems are quad core or more, and you can then route any system request to particular CPUs dedicated for just that)
An implementation in which one or more processor cores are used purely for handling system related tasks is actually a very effective solution, IBM uses similar implementations in their Z series mainframes. The PS3 also used a similar processing model, the purpose of the PowerPC based PPE is to load and schedule the various SPEs.
The caveat of doing this is that there's still a delay between the time that the system call is issued and the time in which it responds. IBM has solved this by scheduling 4 threads concurrently per processor core in their latest POWER 7+ processors (4 way SMT, similar to Intel's Hyperthreading).
This particular kind of process model wouldn't work too well on a system that wasn't designed for it and performance of highly concurrent applications would suffer as a result of the lost processor core. Modern x86 processors are simply far more suited to hybrid and monolithic kernels than they are towards microkernels. Other architectures such as ARM and PowerPC are better suited towards microkernels. QNX used in BlackBerry's Z10 and Q10 smartphones is a real-time microkernel based operating system and it manages to squeeze out very acceptable levels of performance on Qualcomm's Krait architecture.
The question at this point then is whether or not microkernels are at all relevant for desktop environments anymore. Modern programming techniques and hardware technologies have boosted the security and stability of monolithic and hybrid kernels to the point that the advantages of microkernels have diminished.
>I could imagine a micro kernel, for example, written in Java or similar language running in a VM that enforced fine-grained memory controls, e.g. at the object level. If you used this for memory protection between trusted (e.g. OS level) servers you could avoid the hit of reloading the CPU's page maps. User space separations could be enforced by the CPU for better security.
Microsoft Research has done a lot of work on this exact idea. They even produced a usable operating system
http://en.wikipedia.org/wiki/Singularity_(operating_system)
Microkernel operating systems aren't inherently difficult to construct but there's a very noticeable tradeoff between the performance of a hybrid/monolithic kernel and the security/stability of a microkernel.
The performance hit comes from the hardware isolated process model used by modern microprocessors. Whenever an application needs to do something outside of its own scope, such as request additional memory, access shared resources, or interface with a device driver it makes a system call. In a monolithic system this requires the processor to switch from the running task to the kernel task, perform the requested action, and then switch back to the running task. If the kernel needs to access the tasks memory, it can access it through segmentation or shared memory with ease because the kernel in a monolithic system has no access constraints.
In a microkernel system the processor switches from the running task to an interprocess messaging task (part of the microkernel), which then copies the message to the requested server's buffer, switches to the server task, processes the message, switches back to the messaging task, copies the response back to the original client's buffer, and then switches back to the client task.
Task switches are very expensive in terms of CPU cycles, so minimizing them is key to obtaining performance. Hybrid and Monolithic kernels have a massive performance edge on modern processors because they perform a fraction as many task switches and memory operations whenever a system call is performed.
Don't forget about Windows Server 2003 / XP x64 which identify as NT 5.2
The service provider must have a terms of service which includes provisions for account suspension and termination for repeat offenders. Simply having a TOS isn't sufficient, they also have to "reasonably implement" it. This can be found under 17 USC 512(i). The policing doesn't necessarily have to be pro-active, it just needs to be active. If a plaintiff can demonstrate that a service provider's TOS is merely a façade and that the service provider is not living up to their obligations under the OCILLA then that may help their case.
If I recall correctly, something along these lines was used against Megaupload (don't quote me on that, I'm not overly familiar with the case).
Yup. Youtube has a massive number of programs and features, both automated and manual, which are purpose designed to handle copyrighted content. Users are still figuring out novel ways to get around them (such as mirroring a scene from a movie) but Youtube's Copyright handling is the best that I've ever seen and goes way beyond that required by the DMCA
The DMCA Safe Harbor provision is what allows sites like Youtube to operate. Since Youtube is a fully automated site in which users upload their own content without approval from Youtube on a case-by-case basis, Youtube does not have full control over the content of their website in real time. Without the Safe Harbor provision, any copyrighted material that appears on Youtube would constitute unwillful copyright infringement by Youtube regardless of who put it there. The Safe Harbor provision shields them from primary and secondary liability.
However, obtaining the benefits of the DMCA cannot be done without also adhering to the requirements of the DMCA and the OCILLA (the legal name for the Safe Harbor provision). Several of the requirements set out by these acts include making a good faith effort to prevent copyrighted content from being uploaded or inducing access to copyrighted content. In short, site operators have to perform at least some level of self-policing in order to obtain protection under OCILLA.
In the case of ISOHunt, it's possible to search by various categories including movies, music, applications, etc... as well as view latest releases by the same categories. A quick look at the top torrents, most recent torrents, top cross indexed torrents, and top searches show that the site operators made no effort to prevent copyrighted content from being made accessible.
The court ruled against them not because they engaged in direct infringement themselves, but because they promoted infringement and profited from that infringement. If they wanted the courts to take them seriously, then they shouldn't have displayed "aXXo" and "jaybob" as the top searches on the front page for years on end, especially when those searches yield infringing results. Of the top 1,000 searches on ISOhunt.com right now all of them are in search of either copyrighted content, or downright illegal content.
They don't speak Arabic in Afghanistan so why would they consider broadcasting it?
There's nothing wrong with Javascript
Very funny
LUA is an extremely fast scripting language that was designed to be embedded in C.
It can probably be used to handle the non-realtime components of the kernel quite easily
Marketing is the problem.
The availability of games for Linux just exploded but the majority of these games have been available on Windows for years. Some have even been available on Linux for ages already and are simply just migrating to Steam for the sake of doing so. If all these previously available Linux games failed to see a large amount of success on Linux without Steam, it's unlikely that they will sudden explosion in Linux installations with Steam. Linux users tend to be rather savvy and aware individuals by nature, so anyone seriously wanting to acquire these games for either Windows or Linux has already done so.
There's nothing new here. Aside from a very few individuals who simply refuse to run Windows, there's no one running Linux that hasn't played those games already.
What Steam for Linux will achieve though is a stable prototype for Valve's Linux based game console. One of the largest criticisms leveled at Linux is the horrific binary incompatibility between distros. By using a commercial platform that has a consistent environment it will be much easier for Valve to entice developers to port their games to Linux for Steambox or whatever they're calling it. From there, it will still take several steps to get a game running on Fedora, RedHat, CentOS, Ubuntu, Arch, Mint, etc... but at least there will be Steambox as a common Linux based denominator.
The GNU project was started to be a clean-room reimplementation of UNIX. They started by reimplementing the basic behaviours but never got around to implementing a kernel.
It's pretty easy to work on an OS without a kernel as long as you know how that kernel should behave.
The ones I'm familiar with, such as SeaTools, just use DOS as bootable environment. I don't see any real reason they couldn't have used Linux or even a light version of XP if there were no modern DOS. Where there's a competent programmer and a problem, there's a solution.
They use it because a basic DOS distribution is nothing more than a filesystem driver and command line interpreter. There's no hardware abstraction and this allows programs to access device buses without issue, or risk exposing their hardware's service mode to malicious code.
It's called investment.
Most projects on this planet, whether they be mechanical, research, software, construction, or anything else, would not be possible without some sort of up front financing.
People need to be paid during development, licences need to be paid for, materials need to be purchased. Companies often incur hundreds of different costs before they ever see a cent of revenue.
I fully understand the skepticism that gets leveled at certain Kickstarter projects but please understand that Kickstarter simply replaces the venture capitalist with the venture consumer.
Venture capitalists don't give a shit about the project itself. They only care about whether or not it meets the required return based on the risk that it poses. If they don't think that a project has any earning potential, they won't invest in it. This actually stops a lot of bad ideas from ever seeing the light of day and provides would be entrepreneurs with valuable business insight that new managers typically lack.
Venture consumers care far more about the project itself rather than the money that they invest in it. They're looking for a return in the form of enjoyment and entertainment ('utility' in economic terms) rather than one that is monetary. Unlike venture capitalists, consumers are often naive about the business world and easily tricked into supporting projects that have no hope of ever seeing the light of day. This has been the reason behind most of the criticisms of Kickstarter, it's too easy to exploit the system.
Anyone can come up with a half decent idea, but not anyone can come up with a team and business plan to implement it. In this case, there's already a product that's been available for more than a decade and is backed by a capable and proven development team. It's likely that they'd be able to get funding from an external source such as a line of credit or VC but since this is a software project, Kickstarter might offer greater benefits.
Shitty console ports love to stream textures
Generally, but not always.
Breach of contract is something that is generally settled in civil court but there are some laws which can add criminal teeth to breaches of contract.
misappropriation of trade secrets is a breach of contract which can have contractual, civil, and criminal remedies depending on what's involved.
This only applies to the new GCN architecture (most high end 7000 series cards) and not the older VLIW4/5 cards (which includes low end 7000 series cards and 6000 series cards)
Any sufficiently shocking display of stupidity is indistinguishable from malice
Trying to take on IBM in a patent war would be like trying to sink the Missouri with small arms fire