I should of been more clear when i stated 'programs' in my original statements context, the point i was wanting to make is that software outside of the kernel domain are the most likely cause of most BSOD's not that it is exclusively the case though. This is because the kernel is just 1 program, usually fairly small and well written, vs an enormous amount of drivers, adapters, daemons and end user programs further compounded by numerous plugins that each program may have. Though the kernel can be affected and destabilised by kernel extensions if poorly written.
There is very little real distinction between a program and an application.
In actuality, Apple came out with the term Applications for its macintosh software back in the late 70-80's, Microsoft always used the term programs, as historically that is what they were always called. To this day apple still uses the term Applications for its desktop GUI programs, and utilities for its command line programs. In reality both are still programs. On windows Microsoft makes a similar distinction, with desktop GUI programs being called programs and command line programs being called utilities. In reality, be it graphical or not, command line driven or not it is still a program.
Apple defined the term and still uses it to this day, Microsoft does not really use the term, or at least does not use it exclusively. If you open the start menu it still says 'programs', not applications. Though they do have in Windows Vista/7 the 'Applications' folder. This is nothing more than a partial transition to relabelling programs on windows to applications in the footsteps of Apple. Apple stores all its programs in the Applications folder and Microsoft seems to want to follow suit, keeping things tidier in the filesystem as Mac OS X does, they needed a name and choose Applications.
In practical terms, an Application can be defined as software that 1) does provide a user interface and 2) is initiated by the end user, however it is still a program, even if a program is not an Application.
Well firstly I didn't say 'program' I said application. And an application is software that a user runs manually and usually maintains an interface to interact with the user. A program is any executable file. Unless you claim my CompTIA A+ Cert Guide book to be incorrect not to mention the vast majority of the internet. But thanks for the information.
It has been quite some time since i have dabbled in C# however i was under the impression when you hit the stop button (button being the rectangle icon for stop) in visual studio; it frees up all its resources. If thats not the case, how do you free them up?
That is, I never actually killed the process until later on before I published the appliation I realized that I was calling the Application.Exit method but that isnt ending the program. Environment.Exit(0) was the solution I was looking for there. SO that means that when you debug an application in visual studio, then close it with code but it doesnt actually end the process and then close it with the square stop button, it isn't freeing all the resources. I'm glad you have helped me put together this puzzle here, thanks alot reece.