I don't know exactly but I had 2 blue screens connected to the video driver (not SO bad) while playing GTA3:VC and Unreal2 using 53.03; they are gone now with 56.64. I have a GeForce 3 Ti200. My brother has a FX5600 and some instability and black screen issues with 53.03 that are gone in 56.64. As an added bonus, application profiles are quite useful.
The Windows GDI design is such that there is no way a process' GDI resources to be freed if the process crashes.
That's bogus. It was only true in 16 bit windows where there was no process seperation. Add the column GDI and USER handles in task manager. Processes create GDI and USER handles the same way as other handles; they are freed when the process terminates, wether it closes them or not. They are tracked by the win32 subsystem in win32k. Try creating a program that leaks 10000 gdi handles (the default process limit) and then close it (or crash it or whatever). They will all be freed.
If the memory a process allocated isn't unconditionally freed when the process exits (crash or no), that's an OS bug, not a bug in the application.
It is freed when the process exits. Try the above test with memory.
As for uptime, my main computer (XP sp1) has been up for 42 days, since I upgraded the video drivers. It hasn't crashed since I dumped nVidia's crappy 53.03 drivers about 70 days ago. No slowdowns. No global memory leaks (although I think Mozilla is leaking: it's up to 70MB of private memory.) My laptop has been up for 124 days (also XPsp1). (hibernating 3/4 the time, so its about 30 days of actual use)
Actually, it does, if the app tells Windows. You can open a file with a flag that specifies no buffering. It's the antivirus app developer's fault for not using it. It's not even obscure: see CreateFile and FILE_FLAG_NO_BUFFERING from MSDN.
Microsoft calls NT a microkernel, but it's not. It is closer to a layered client/server model. Also, the kernel proper is different than kernel mode. If anything, NT has too many things running kernel mode. Since NT4, most of win32 runs in kernel mode (win32k.sys). Disk access running in user mode? Let's say you open a text file with notepad. Notepad calls CreateFile from win32 in kernel32.dll, in user mode. Win32 translates CreateFile into the native function NtCreateFile (ntdll.dll). All NtCreateFile does in user mode is load that function ID into a CPU register and raise a software interrupt. After that, everything is in kernel mode. Software interrupts for system calls are handled by KiSystemService (in ntoskrnl.exe). The corresponding entry for NtCreateFile in KiSystemServiceTable translates to ZwCreateFile. After that, the filesystem driver takes over.(Same thing with reading/writing).
Overall, applications are on top, then win32 (or some other subsystem), then the native api (ntdll), then in kernel mode the minidrivers, executive services, low level drivers, the kernel itself, and the HAL at the bottom.
What are you talking about? Internet Explorer is implemented mostly in shell32.dll, mshtml.dll and browseui.dll. All of it runs in user mode, let alone not part of the kernel. The kernel is ntoskrnl.exe and mabye hal.dll. I'm not saying IE is perfect, I've used mozilla since MS abandoned IE development, but get your facts straight; complain about actual issues (SSL is one).
No, windows and message queues (and other similar GDI/USER objects) are managed by the kernel in Windows.
win32k.sys != the kernel. Yes, in NT4 and later, MS decided to move most of csrsrv.dll into win32k.sys. These manage message queues for User32, drawing for GDI and some win32 state info. csrsrv.dll runs in user mode hosted by csrss.exe. win32k.sys runs in kernel mode but it certainly is not part of the kernel.
I guess you're thinking of the kernel32 -> ntdll mapping.
Libraries like kernel32.dll are the application's interface to win32. Many services, like mapping memory, don't require win32 and map directly into a call into ntdll. Basically win32k or csrss represent the server in NT's client-server architecture.
As long as this thread is full of anecdotes: The uptime for my WinXP desktop is 40 days, when I restarted to upgrade the video drivers. Before that, I had about a month between crashes with nVidia's crappy 53.03 drivers (now using 56.64).
My laptop (XP sp1 also) hasn't crahsed, or been restarted, since I upgraded to S3's final video drivers, about 6 months ago. They were the last remaining cause.
Together, the computers spend about half their time in hibernation, but when they are on, they are being put to work.
I do a lot of web browsing (Mozilla, and it died when I tried to play a quicktime embedded movie 2 days ago, eating my 5 or so open windows), development with cygwin and MS studio 2003. I also play plenty of games that tempt bad video drivers to die. When I want to do something else, I don't close anything.
No slowdowns, or memory leaks.
I have never re-installed a NT-deriv Windows; and it's not as if I don't use them for anything.
Finding good drivers is difficult; it takes a lot of expierence. Ignore driver signing.
Also, I wish MS would get around to releasing SP2 for XP some time this year.
Yeah, it should have been 12382 [enter] 147324 [+] 4239 [*] 2342 [+] Only one [enter] was necessary. You usually save 1 keypress for each set of parenthsis.
Read the article link; it supports algebraic. I don't know specifically how with this one, but with the graphing ones, you can use infix (algebraic) notation all you want. Press the ' (single quote) key, and enter it as an expression. Then press EVAL. It's not faster, but infix never was.
Even if I wrote the programs myself? If I can explain the procedure to the calculator, then I must know how to do it. After that, it's just repetition- mabye that's the point?
First, the win32 functions look a lot longer because you made a new line for each parameter, and the standard headers use typedefs in all caps. Second, use MapViewOfFileEx if you want to specify a start address. mmap has 6 parameters. CreateFileMapping has 7 parameters, and MapViewOfFileEx has 5. Minus the extra parameters each for offset in win32(as dumb as it is) posix takes 6 and win32 takes 10 parameters. mmap:fd = CreateFileMapping:hFile mmap:start = MapViewOfFileEx:lpBaseAddress mmap:prot = CreateFileMapping:flProtect mmap:length = MapViewOfFileEx:dwNumberOfBytesToMap mmap:offset = MapViewOfFileEx:FileOffsetHigh and Low, as two seperate values to create a 64 bit offset mmap:return value = MapViewOfFile:return value CreateFileMapping:dwMaximumSizeHigh and Low have no equvalent in mmap; they can be used to expand the size of the file CreateFileMapping:lpAttributes has no equivalent in mmap; CreateFileMapping creates a section object in the kernel: it has its own ACL. mmap always uses the file's permissions. This also controls if child processes inherit the section object. CreateFileMapping:lpName(optional) has no exact equivalent in mmap since the original file(if there was one) had a name. This section of shared memory does not. This specifies a name for the section that will be placed in the object manager namespace, if you want one.
In Windows shared and mapped memory is accomplished through a section object. UNIX considers shared memory another type of file. Since in Windows a section != a file, an extra step is needed to create a section from a file. Both can create a memory section that is not connected to a specific file. So UNIX is a little more convient since it can do two steps in one. If that was a common task in a program you could easily write a function to combine the two steps into one. As for the asthetic state of win32, I think that the all caps typedefs and variable type prefixes (dw, h, lp) are hideous; but they don't have much of an impact on the api's actual usability.
Overall, this isn't a very good example of POSIX's superiority; win32 provides more functionaility in this case and the extra parameters can be out of the way using one extra function.
OOOh nice false dilemma. I don't think that Microsoft is any kind of wonderful company, but a lot of their software is quite usable, even superior than it's competitors sometimes. Yes, other competitors exist. Does MS have a monopoly? For consumer desktop operating systems, and most of Office's apps. MS loses a lot of money on mostly everything else. Is MS abusing their position to expand the company's markets and maintain existing ones? Sure. The shareholders would demand nothing less. Still, MS isn't holding a gun to anyone's head to use their software.
...is it because Microsoft forces garbage software down our throats and still gets 80% returns on it because of their monopoly position?
If "forces garbage software" (that never improves) was literally true, the monopoly would have no foundation. If it was so bad, don't you think other buisnesses would care and make more of an effort to migrate away? Do you think that Microsoft has its monopoly entirely by force? If not, then they must have some other redeeming features.
Actually, Windows 2000 and up have a special section of group policy specifically for that called Software Restriction Policies. You can create rules based on path, filename, hash, or certificate. You can create either a blacklist of unrunnable binaries or a whitelist of runnable binaries. You can choose to include all binaries or just executables (not libraries). You can also add new file types based on extension. You can enforce it across all users or just non-admins. You can put your certificates in the domain's active directory for easy administration. For a local system, creating hashes is easy; just find a copy of the binary and it will add it to your policies. To set it up find 'local security policy' (you may need to show it in explorer's properties) and select 'software restriction policies.' Right-click to create a local rule set. See help for more information.
There is no standard amount of time you have to spend to get into heaven, or any act. Nothing you do or say can get you into heaven. Only accepting Jesus as your saviour pays for our sins.
There is no overhead? I see church as overhead if it isn't necessary. Mabye there are different levels of salvation?...If there is no need to go to church, etc., then why even have them? I can see that even if you don't have to go, you can still want to. I guess if it was me, I would want the least possible overhead.
BTW: I don't understand the mod's rating of 'flamebait'. It's totally unwarranted.
Because I don't respond to the statement of threat that Pascal's wager is? Either believe, trust and worship in god or else: if you're wrong you'll go to hell. Give me a logical reason to believe, and I will.
To clairify: when I said The cost of believing in a false god is too high and beleveing in the right one is too unlikely. I specifically meant no god as an option. The cost of believing in a god when there is none (a false god) is too high. I have to spend a lot of time (several hours a week is standard, isn't it?), and more importantly I am being a hypocrite to myself to believe in a god without having a logical reason to while I hold rationality so high.
Out of all the religions (that I've researched), Jesus was the only person to claim to be God. All of the other religions are people writing about other people who appeared to be God-like (but never claimed to be God).
So the religion of Jesus is more correct because it makes more grandeous claims or by personifying god?
As a result of this, you basically have 2 choices. Either Jesus was wrong (because he was lying, crazy, etc) or he was right. Now I don't believe he was lying or crazy because he knew that if he claimed to be God he would surely be killed. Additionally all of his diciples afterwards proclaimed to the world that he was God (dispite severe persecution).
Here is a good section dealing with that, and the premise that Jesus = God. Regardless, the whole thing is a loaded question since the premise that Jesus actually existed is unsubstantiated.
The fundamental problem with all religions that I have seen is that they require me to believe something without a logical reason to do so (AKA faith). The burden of proof is on them to provide reasons for me to believe, so they use faith to cover up the fact that they can't deliver. This represents a basic conflict with my personal values: I always seek to base my actions on practical logic. Note that I also believe in the right to decide your own values; this post is about what I believe, not a demand for everyone to do the same.
Fair enough. If you're right, when we die, we die. If I'm right, well... Let's just say I'll stick with my faith.
Is this a form of Pascal's Wager? It goes "If you believe in God and turn out to be incorrect, you have lost nothing -- but if you don't believe in God and turn out to be incorrect, you will go to hell. Therefore it is foolish to be an atheist." Sorry, it's broken.
The cost of believing in a false god is too high and beleveing in the right one is too unlikely. If this isn't your position, I apologize.
Re:Religion is for the week-minded
on
SimChurch
·
· Score: 2, Informative
There are more pro-religion books out there than anti-religion books.[...]Name one great composer or inventor who was an atheist. Couldn't do it? I didn't think so. So far the score's looking pretty good, eh? A billion Christian's can't all be wrong. Would you also tell Bush himself that he was wrong?
Irrelevant: the number of people that believe something has nothing to do with its truth.
Ever heard the phrase "time will tell?" Well time has indeed "told", still after 2000 years of people who believe in Jesus. And going strong.
Irrelevant: how long a tradition has existed has nothing to do with its validity.
If they were wrong about God, they could concievably be wrong about their other theories/inventions/achievements. But they were right in their achievements. Name one great composer or inventor who was an atheist.
And watch the hard drive light stay on constantly as the least-recently-used threshold drops down to within the last fraction of a second.
That wouldn't happen if you never use something that gets paged out, because there is no reason to page it back in.
And another thing: how would one go about learning which services that come installed on Windows are or are not necessary? Does the user have to disable one service, reboot, hope for the best, and rinse and repeat?
Each service has a clear list of the other services it depends on. Check the 'Dependencies' tab. Well written apps will start services they need that are set to 'manual' startup; not all 3rd party apps do this but most MS ones do, and besides: it's rare for an app to depend on anything besides the print spooler and the workstation service (for client SMB), plus the DNS client for web browsers. You don't have to restart to stop or start a service. Each service also has a description, and the help file lists common ones. As a minimum, I suggest:
Event log
Plug and play
Remote procedure call
Security accounts manager
Shell hardware detection (shows new hardware messages to the user)
Task scheduler
If you are on a WAN:
DHCP client if you are using DHCP
DNS client
Network connections (it's a control panel helper)
And if you are on a LAN:
Network connections
Workstation
Server
Computer browser
NetBIOS helper
NTLM security provider
Print spooler if you plan to print anything
Secondary logon if you want RunAs
Windows audio if you want sound
Set everything else to manual startup, and it should be fine (for a workstation). To implement this, use the services control panel, or sc.exe(see help). Expierence is the only way to really learn which services are needed for what.
And then watch the.NET framework complain when it can't find services that you previously thought were "unneeded."
Like what? My WS2k3 server runs fine with 46MB of services and it uses.NET extensively; a 2000 workstation should be half of that. Even less if you aren't on a LAN. Besides, if you aren't using something, it gets paged out.
How much does it cost to bring an older machine's RAM up to spec for Windows XP?
The parent was talking about 2000, not XP; it's usable with 64M of memory, once you stop unneeded service. 64M is more than enough for the command-line compiler.
Remember Gates' Law: Microsoft operating system and office productivity software becomes half as efficient every 18 months or so.
Yeah, the exponentially increasing size of Windows is bad, but it's memory footprint isn't too bad once you turn off the extra stuff. Other modern operating systems aren't much better, though. Open Office.org 1.1.0 uses about the same amount of memory as Office2000 on my machine.
The CD costs money for users that don't have high-speed Internet access.
Then it doesn't cost any more than Linux (popular distros are 3+ CDs), or any other large Free/Open software product.
Hence things like templates/overloading whilst great for you and usually for the project.. is pretty bad for the long time survability of the project as generally there will be less chance of finding good C++ programmers than a crappy C programmer.
Templates (when used properly) increase the maintainability of the project, by reducing code redundancy considerably. If no one has to use a language's advanced features, no one will learn them. If they wanted a progam written in C: use C, not C++ as they are different languages. BTW: I don't consider templates an exotic part of c++. Partial template specialization based on derivative types from another templatized class, yes.
I don't know exactly but I had 2 blue screens connected to the video driver (not SO bad) while playing GTA3:VC and Unreal2 using 53.03; they are gone now with 56.64. I have a GeForce 3 Ti200. My brother has a FX5600 and some instability and black screen issues with 53.03 that are gone in 56.64. As an added bonus, application profiles are quite useful.
Yeah, IIS 6 (WS2003) has a kernel-mode cache component for web pages (http.sys). It's not optional. This article mentions it.
It seems to me that some other high-performance web servers have an optional kernel-mode cache component too.
As for uptime, my main computer (XP sp1) has been up for 42 days, since I upgraded the video drivers. It hasn't crashed since I dumped nVidia's crappy 53.03 drivers about 70 days ago. No slowdowns. No global memory leaks (although I think Mozilla is leaking: it's up to 70MB of private memory.) My laptop has been up for 124 days (also XPsp1). (hibernating 3/4 the time, so its about 30 days of actual use)
Microsoft calls NT a microkernel, but it's not. It is closer to a layered client/server model. Also, the kernel proper is different than kernel mode. If anything, NT has too many things running kernel mode. Since NT4, most of win32 runs in kernel mode (win32k.sys).
l for more information. (and the whole website)
Disk access running in user mode? Let's say you open a text file with notepad. Notepad calls CreateFile from win32 in kernel32.dll, in user mode. Win32 translates CreateFile into the native function NtCreateFile (ntdll.dll). All NtCreateFile does in user mode is load that function ID into a CPU register and raise a software interrupt. After that, everything is in kernel mode. Software interrupts for system calls are handled by KiSystemService (in ntoskrnl.exe). The corresponding entry for NtCreateFile in KiSystemServiceTable translates to ZwCreateFile. After that, the filesystem driver takes over.(Same thing with reading/writing).
Overall, applications are on top, then win32 (or some other subsystem), then the native api (ntdll), then in kernel mode the minidrivers, executive services, low level drivers, the kernel itself, and the HAL at the bottom.
See http://www.sysinternals.com/ntw2k/info/ntdll.shtm
See this article for an in-depth description.
As long as this thread is full of anecdotes: The uptime for my WinXP desktop is 40 days, when I restarted to upgrade the video drivers. Before that, I had about a month between crashes with nVidia's crappy 53.03 drivers (now using 56.64).
My laptop (XP sp1 also) hasn't crahsed, or been restarted, since I upgraded to S3's final video drivers, about 6 months ago. They were the last remaining cause.
Together, the computers spend about half their time in hibernation, but when they are on, they are being put to work.
I do a lot of web browsing (Mozilla, and it died when I tried to play a quicktime embedded movie 2 days ago, eating my 5 or so open windows), development with cygwin and MS studio 2003. I also play plenty of games that tempt bad video drivers to die. When I want to do something else, I don't close anything.
No slowdowns, or memory leaks.
I have never re-installed a NT-deriv Windows; and it's not as if I don't use them for anything.
Finding good drivers is difficult; it takes a lot of expierence. Ignore driver signing.
Also, I wish MS would get around to releasing SP2 for XP some time this year.
Yeah, it should have been
12382 [enter] 147324 [+] 4239 [*] 2342 [+]
Only one [enter] was necessary. You usually save 1 keypress for each set of parenthsis.
No, the first executed operation is addition (it's in parenthsis). RPN instructions are always executed in literal order.
Read the article link; it supports algebraic. I don't know specifically how with this one, but with the graphing ones, you can use infix (algebraic) notation all you want. Press the ' (single quote) key, and enter it as an expression. Then press EVAL. It's not faster, but infix never was.
According to the spec sheet for the new 33s that the story is about, it in fact DOES use a 6502 . Note CPU.
Even if I wrote the programs myself? If I can explain the procedure to the calculator, then I must know how to do it. After that, it's just repetition- mabye that's the point?
First, the win32 functions look a lot longer because you made a new line for each parameter, and the standard headers use typedefs in all caps. Second, use MapViewOfFileEx if you want to specify a start address.
mmap has 6 parameters. CreateFileMapping has 7 parameters, and MapViewOfFileEx has 5. Minus the extra parameters each for offset in win32(as dumb as it is) posix takes 6 and win32 takes 10 parameters.
mmap:fd = CreateFileMapping:hFile
mmap:start = MapViewOfFileEx:lpBaseAddress
mmap:prot = CreateFileMapping:flProtect
mmap:length = MapViewOfFileEx:dwNumberOfBytesToMap
mmap:offset = MapViewOfFileEx:FileOffsetHigh and Low, as two seperate values to create a 64 bit offset
mmap:return value = MapViewOfFile:return value
CreateFileMapping:dwMaximumSizeHigh and Low have no equvalent in mmap; they can be used to expand the size of the file
CreateFileMapping:lpAttributes has no equivalent in mmap; CreateFileMapping creates a section object in the kernel: it has its own ACL. mmap always uses the file's permissions. This also controls if child processes inherit the section object.
CreateFileMapping:lpName(optional) has no exact equivalent in mmap since the original file(if there was one) had a name. This section of shared memory does not. This specifies a name for the section that will be placed in the object manager namespace, if you want one.
In Windows shared and mapped memory is accomplished through a section object. UNIX considers shared memory another type of file. Since in Windows a section != a file, an extra step is needed to create a section from a file. Both can create a memory section that is not connected to a specific file.
So UNIX is a little more convient since it can do two steps in one. If that was a common task in a program you could easily write a function to combine the two steps into one.
As for the asthetic state of win32, I think that the all caps typedefs and variable type prefixes (dw, h, lp) are hideous; but they don't have much of an impact on the api's actual usability.
Overall, this isn't a very good example of POSIX's superiority; win32 provides more functionaility in this case and the extra parameters can be out of the way using one extra function.
Sources:
mmap
CreateFileMapping
MapViewOfFileEx
MapViewOfFile
See also:
NtCreateSection
NtMapViewOfSection
I don't think that Microsoft is any kind of wonderful company, but a lot of their software is quite usable, even superior than it's competitors sometimes. Yes, other competitors exist. Does MS have a monopoly? For consumer desktop operating systems, and most of Office's apps. MS loses a lot of money on mostly everything else. Is MS abusing their position to expand the company's markets and maintain existing ones? Sure. The shareholders would demand nothing less. Still, MS isn't holding a gun to anyone's head to use their software.If "forces garbage software" (that never improves) was literally true, the monopoly would have no foundation. If it was so bad, don't you think other buisnesses would care and make more of an effort to migrate away? Do you think that Microsoft has its monopoly entirely by force? If not, then they must have some other redeeming features.
Actually, Windows 2000 and up have a special section of group policy specifically for that called Software Restriction Policies.
You can create rules based on path, filename, hash, or certificate.
You can create either a blacklist of unrunnable binaries or a whitelist of runnable binaries.
You can choose to include all binaries or just executables (not libraries).
You can also add new file types based on extension.
You can enforce it across all users or just non-admins.
You can put your certificates in the domain's active directory for easy administration.
For a local system, creating hashes is easy; just find a copy of the binary and it will add it to your policies.
To set it up find 'local security policy' (you may need to show it in explorer's properties) and select 'software restriction policies.' Right-click to create a local rule set. See help for more information.
BTW: I don't understand the mod's rating of 'flamebait'. It's totally unwarranted.
Because I don't respond to the statement of threat that Pascal's wager is? Either believe, trust and worship in god or else: if you're wrong you'll go to hell.
Give me a logical reason to believe, and I will.
The fundamental problem with all religions that I have seen is that they require me to believe something without a logical reason to do so (AKA faith). The burden of proof is on them to provide reasons for me to believe, so they use faith to cover up the fact that they can't deliver. This represents a basic conflict with my personal values: I always seek to base my actions on practical logic.
Note that I also believe in the right to decide your own values; this post is about what I believe, not a demand for everyone to do the same.
Sorry, it's broken. The cost of believing in a false god is too high and beleveing in the right one is too unlikely.
If this isn't your position, I apologize.
Doesn't leave you with much.
You don't have to restart to stop or start a service.
Each service also has a description, and the help file lists common ones. As a minimum, I suggest:
Event log
Plug and play
Remote procedure call
Security accounts manager
Shell hardware detection (shows new hardware messages to the user)
Task scheduler
If you are on a WAN:
DHCP client if you are using DHCP
DNS client
Network connections (it's a control panel helper)
And if you are on a LAN:
Network connections
Workstation
Server
Computer browser
NetBIOS helper
NTLM security provider
Print spooler if you plan to print anything
Secondary logon if you want RunAs
Windows audio if you want sound
Set everything else to manual startup, and it should be fine (for a workstation).
To implement this, use the services control panel, or sc.exe(see help).
Expierence is the only way to really learn which services are needed for what.
BTW: I don't consider templates an exotic part of c++. Partial template specialization based on derivative types from another templatized class, yes.