On Linux, fluxbox supports tabs and is nice and fast.
On Windows, I am not too sure about shell replacements that support multi-tabs. The only one i know is litestep and i don't think it has tab support unfortunately. Let me know if you find anything...
Yeah... This has been the general trend of computing for the past 5-10 years unfortunately. This is natural because only a few people are able to understand/work on the core OS, people tend to start to work around problems by building things at a higher level sometimes.
In fact I do what Chrome is promising all the time, by using a browser that doesn't support tabs. Instead i use a window manager that supports tabs, so all processes can be tabbed and still maintain isolation boundaries.
One of the major reasons browsers had tabs in the first place was because it was much more lightweight than forking multiple processes for each site you open, at least on Windows since processes are much more heavyweight in the NT kernel than on most Unices, where as threads are extremely light.
What also interests me is how each tab/process will communicate with the main process and with each other in Chrome. Will they use shared memory? or will they use something more unixy, like sockets or pipes? And if they do, would there be a potential security vulnerability?
Of course not all drivers can be switched to this framework because the requirement to touch physical memory, register for ISRs, etc. But moving 3rd-party drivers to user-mode is definitely a good thing.
The ACPI interpreter is designed to work within the OSPM. The reason being the assumption that the OS will always be the central point that knows the most about the whole system at any given time, and therefore it is most qualified to make power management decisions.
About your point about standardizing on an abstract interface of non-standardized hardware, consider:
This is nothing new, and is what always happens in the computer industry. If we were so hung up on standardized hardware interfaces that are well understood by the industry, we would still be coding all in x86/68k/ia64 assembly. Thanks to a wonderful high level (read: abstract) language (C/C++) that is standardized so we can write portable code for.
ACPI hasn't replaced any of those hardware standards you mentioned. E.g. ATA drives still take the same commands as before and the standard is constantly evolving. But more importantly, do those hardware standards have the advance power management capabilities offered by ACPI? And, if they do implement it somehow in the hardware spec, how is updating each individual hardware's firmware *and* driver to include the new power management support, better than just updating the firmware AML code to expose the new capabilities to the OS in a standardized way?
You didn't mention the other half of the ACPI standard, the Configuration aspect of the spec. All those hardware interfaces that you know and love used to each expose its own resource requirement differently, unlike ACPI which standardizes resource descriptors and boot-configured requirements. How is supporting a bunch of hardware specific resource description format better than supporting one standardized format that is well understood by the OS?
Finally, to go back to your OLPC example. First of all I am not sure why you would want to put an ACPI interpreter into the boot loader? Is there a reason OLPC is doing this? As for you implying that you need to run ACPI code to suspend the CPU (after each keystroke), this is just not true. C-states (which i assume you are talking about) are entered by simply reading a register for the state, as described by the _CST definition. So all you need to do is parse the definition once, and remember the corresponding registers and never parse the AML code again. Same for T-states or P-states, which are entered by writing to the proper registers. There is no such running "ACPI script" overhead like you've described when handling processor power management.
The summary is sensationalistic, and wrong. MS is not moving its R&D to canada, it is opening another development lab in Vancouver. And this has nothing to do with immigration visa issues, as it is trivial to get canadians to work in the US via NAFTA.
IBM, EA, ATI, AMD (just to name a few) all have huge labs in major cities in Canada. It's completely unsurprising for MS to finally follow suit and open a lab in Canada, where tech / engineering talents are aplenty. It's a bit surprising that they didn't open it near Waterloo, where a huge percentage of MS engineers are from... But Vancouver just makes more sense because of its proximity to Redmond.
"Meanwhile, the province is trying to lure back Canadians working south of the border. This summer, it is launching a $2-million program promoting new job opportunities, improved taxation and a higher dollar in their home country."
Draw your own conclusion at why MS is making this decision right after the announcement about "improved taxation" in Canada.
Here's a link in MS technet, from the result of a google search. You can see the various usermode tools you can use for NT security administration; for example you can use showpriv.exe to see who has what privilege on your system. I also believe lots more documentation related to the APIs and constants can be easily found on MSDN.
You are right that when installing apps on windows, you will never see something like what you would see in VMS documentation regarding required priviledges for the said application. However, I must be fair and say this is hardly the fault of Windows, but more the unfortunate nature of having a consumer-oriented OS. All the third party applications on Windows will always indirectly determine your overall experience on the platform. Since they are not written by people with you and me(admin types) in mind, most of the time they just make bad assumptions and fugly shortcuts as long as they work. This is the catch-22 of any OS that attempts to be as ubitigous as Windows, unfortunately.
As the anonymous post under you have already said, windows does have roughly 30 different priviledges it can have for processes, just like VMS. As you may already know, Windows NT was based on VMS and done by basically Digital's VMS crew (Cutler and co.), so much of the security model is very similar.
Check out this article written by no other than mr. Russinovich about the relationship between NT and VMS.
The number [of violations] will be way less because we've done some dramatic things [to improve security] in the code base. Apple hasn't done any of those things.
Um, Bill, Apple hasn't had to fix DLL hell, and processes run by a user blowing away system things, because they didn't build those problems in in the first place. They didn't have to block open ports with vulnerable services listening on the by default, because they're not _open_ by default. And so on. Next?
You are right, they didn't build those problems in in the first place... they didn't build it at all, in fact. They took an extremely secure and mature server OS and conveniently made it theirs. So Bill's comment is in fact, correct: Apple hasn't really done anything for the security of their OS. Where as Microsoft, after taking so much beating in the security side, has spent significant amount of investment in the area. Now whether or not the investment they've made is good enough is yet to be seen.
> OSX has bash, and Vista still has the crappy ass DOS CLI. Game over.
Vista has the same cmd shell that has been shipping since MS moved to the NT line in win2k. It is NOT the DOS shell and has very little similarity to it other than the aliased command names. You can find a lot of things you want from a unix shell, if you care to look (albeit with strange name/syntax at first, if you are used to the unix commands)
I do agree that it is not as good as bash. However there are a couple of things you can do to make it more powerful, for example getting the MS unix subsystem (as oppose to the win32 subsystem), getting cygwin (you know where to get that), or getting monad.
But let's be frank, most users don't really say "game over" when they install vista and type "bash" and see that it's not there.
Just downloaded and tried your regfs, it looks good! I have always wanted to do this to make life easier. Congrats on the good job so far! A question: how do i read and write the values? I tried "type" and notepad but it says it can't find the files.
Are you looking for people to contribute to the project? I am definitely interested.
It sounds like a great idea. I am sure lots of people (including myself) are willing to help out. I personally am interested in implementing a R/W registry filesystem (hopefully in usermode, when you are finished), I think that would be really useful for solving a lot of windows deployment issues...
It is pretty insane that people on here are saying they've never taken such a course in their university/college career.
In Canada, not only will your CS/CE degree include such a course as mandatory, during my time in high school (this is in toronto) we had a grade 13th CS course that went through all the different steps of software engineering, going through the various waterfall/spiral dev cycles, writing specs, feasibility studies, to actually implementing and testing a project.
It blows my mind that people who would be working as CS professionals would not have such knowledge before entering the workplace.
I am curious as to how PNRP works with Zeroconf. Does it 1)implement zeroconf, 2)interoperate with zeroconf, or 3)is completely incompatible with zeroconf? AFAIK zeroconf already does p2p name resolution and is an open standard. Is PNRP gonna be a standard?
you actually don't even need IIS to use asp.net i believe. there has been a asp.net module for apache for a long time. check out http://www.apache-asp.org/
how about superfetch? introducing heuristics and statistical models into the OS seems to be the next evolutionary step in OS designs. It has been something people have talked about a lot in CS, and MS seems to be the first to bring it to the table as far as i know.
or, what about infocard? the identity infrastructure MS is building that Lawrence Lessig says is on the right track to "save the net"? it seems to be a pretty innovative way to tackle a big problem from the ground up.
or perhaps bitLocker, the data protection technology MS is creating to bring volume wide encryption into the OS? The idea might not be super new but the way it is implemented (being optionally hardware-based) seems to be pretty innovative.
There are also various other features, like "readydrive" utilizing nvrams to boot faster (innovative usage of new hardware); the "breadcrumb bar" that brings a new UI element into the desktop shell; "sideshow" which works together with new innovative hardware components... none of these seem like rehashing of old ideas from unices or macs. perhaps they might make good feature candidates for apple to start their photocopiers on in cupertino?
check out the list of new vista features on wikipedia.
this guy tried it using these steps, and it seems to be working nicely for him. He had to delete his EFI partition, which i guess is not really used on x86 macbooks.
The real problem that has always been there with the microkernel is that, sure you can take all the device drivers or MM or FS out of the kernel and make them servers, but what happens when they fail?
Say your ATI video card's driver ran into a synchronization issue that is unsolvable, and panics. Sure, it's isolated from the microkernel. But so what? You *need* the video driver to do anything on the system. So the kernel goes off and restart the video driver server. But wait, you can't just restart the video driver... Some other piece of code say, the power management code for video, is somewhat of a state machine, so that needs to be restarted, too. Then of course, every app in userland that uses video needs to be restarted, to sync up to the new video driver. So sure you haven't restarted the kernel... But you've restarted a significant portion of the system, that to the user's perception the system has effectively rebooted.
This is certainly not true for every piece of kernel code, but it is true for a lot of code in the kernel. Imagine if your file system server goes down. Or your Virtual memory server goes down. All these things are so essential to the system, even if we do isolate them from the core, the entire system is effectively rendered useless without them. Back to the compartmentalized ship analogy... Sure, if one of the non-essential compartment is leaking, then the ship can pretty much go on sailing without a problem. But if one of the engine rooms or its equivalent (I don't know too much about ships unfortunately) is breached, what difference does it make that it's compartmentalized? That baby is going down.
XP by default will reboot when it encounters a bugcheck (or BSOD as people call it). However typically a mini dump or a full memory dump is created in your %windows% directory. This is pretty much like a core file on unix, with the stack information necessary for debugging.
So, if you ever feel brave enough to do some windoze hacking, you can grab this file by booting into a safeOS on the system or a linux live CD, and then head to http://www.microsoft.com/whdc/devtools/debugging/i nstallx86.mspx to grab the MS debugger. Once inside the debugger, usually only 1 or 2 steps are needed to figure out who the culprit is that caused the bugcheck. (by seeing what's on the stack at the crash for example). The other thing you can do, if you can boot into safemode, is to open up the event log viewer and typically there are messages that explain who caused the last bugcheck.
This should be really simple with bcdedit actually. Do you already have an entry (in bcdedit lingo a "data store") in bcdedit that corresponds to your XP partition? What exactly is the problem you are running into? bcdedit is actually a really powerful bootloader, IMHO.
Actually just found an app that does tabbing on Windows. Giving it a try right now.
On Linux, fluxbox supports tabs and is nice and fast.
On Windows, I am not too sure about shell replacements that support multi-tabs. The only one i know is litestep and i don't think it has tab support unfortunately. Let me know if you find anything...
Yeah... This has been the general trend of computing for the past 5-10 years unfortunately. This is natural because only a few people are able to understand/work on the core OS, people tend to start to work around problems by building things at a higher level sometimes.
In fact I do what Chrome is promising all the time, by using a browser that doesn't support tabs. Instead i use a window manager that supports tabs, so all processes can be tabbed and still maintain isolation boundaries.
One of the major reasons browsers had tabs in the first place was because it was much more lightweight than forking multiple processes for each site you open, at least on Windows since processes are much more heavyweight in the NT kernel than on most Unices, where as threads are extremely light.
What also interests me is how each tab/process will communicate with the main process and with each other in Chrome. Will they use shared memory? or will they use something more unixy, like sockets or pipes? And if they do, would there be a potential security vulnerability?
This was introduced in Vista in fact: http://www.microsoft.com/whdc/driver/wdf/umdf_intro.mspx
Of course not all drivers can be switched to this framework because the requirement to touch physical memory, register for ISRs, etc. But moving 3rd-party drivers to user-mode is definitely a good thing.
About your point about standardizing on an abstract interface of non-standardized hardware, consider:
Finally, to go back to your OLPC example. First of all I am not sure why you would want to put an ACPI interpreter into the boot loader? Is there a reason OLPC is doing this? As for you implying that you need to run ACPI code to suspend the CPU (after each keystroke), this is just not true. C-states (which i assume you are talking about) are entered by simply reading a register for the state, as described by the _CST definition. So all you need to do is parse the definition once, and remember the corresponding registers and never parse the AML code again. Same for T-states or P-states, which are entered by writing to the proper registers. There is no such running "ACPI script" overhead like you've described when handling processor power management.
The summary is sensationalistic, and wrong. MS is not moving its R&D to canada, it is opening another development lab in Vancouver. And this has nothing to do with immigration visa issues, as it is trivial to get canadians to work in the US via NAFTA.
IBM, EA, ATI, AMD (just to name a few) all have huge labs in major cities in Canada. It's completely unsurprising for MS to finally follow suit and open a lab in Canada, where tech / engineering talents are aplenty. It's a bit surprising that they didn't open it near Waterloo, where a huge percentage of MS engineers are from... But Vancouver just makes more sense because of its proximity to Redmond.
BTW, a somewhat related article on CBC claims the Canada government is throwing money into luring back expat canadian tech workers down in the US:
"Meanwhile, the province is trying to lure back Canadians working south of the border. This summer, it is launching a $2-million program promoting new job opportunities, improved taxation and a higher dollar in their home country."
Draw your own conclusion at why MS is making this decision right after the announcement about "improved taxation" in Canada.
What's fishy is how powerful Google has suddenly become politically. See http://www.washingtonpost.com/wp-dyn/content/artic le/2007/06/19/AR2007061902058.html?hpid=moreheadli nes
the police
Here's a link in MS technet, from the result of a google search. You can see the various usermode tools you can use for NT security administration; for example you can use showpriv.exe to see who has what privilege on your system. I also believe lots more documentation related to the APIs and constants can be easily found on MSDN.
You are right that when installing apps on windows, you will never see something like what you would see in VMS documentation regarding required priviledges for the said application. However, I must be fair and say this is hardly the fault of Windows, but more the unfortunate nature of having a consumer-oriented OS. All the third party applications on Windows will always indirectly determine your overall experience on the platform. Since they are not written by people with you and me(admin types) in mind, most of the time they just make bad assumptions and fugly shortcuts as long as they work. This is the catch-22 of any OS that attempts to be as ubitigous as Windows, unfortunately.
As the anonymous post under you have already said, windows does have roughly 30 different priviledges it can have for processes, just like VMS. As you may already know, Windows NT was based on VMS and done by basically Digital's VMS crew (Cutler and co.), so much of the security model is very similar. Check out this article written by no other than mr. Russinovich about the relationship between NT and VMS.
You are right, they didn't build those problems in in the first place... they didn't build it at all, in fact. They took an extremely secure and mature server OS and conveniently made it theirs. So Bill's comment is in fact, correct: Apple hasn't really done anything for the security of their OS. Where as Microsoft, after taking so much beating in the security side, has spent significant amount of investment in the area. Now whether or not the investment they've made is good enough is yet to be seen.
Vista has the same cmd shell that has been shipping since MS moved to the NT line in win2k. It is NOT the DOS shell and has very little similarity to it other than the aliased command names. You can find a lot of things you want from a unix shell, if you care to look (albeit with strange name/syntax at first, if you are used to the unix commands)
I do agree that it is not as good as bash. However there are a couple of things you can do to make it more powerful, for example getting the MS unix subsystem (as oppose to the win32 subsystem), getting cygwin (you know where to get that), or getting monad.
But let's be frank, most users don't really say "game over" when they install vista and type "bash" and see that it's not there.
Just downloaded and tried your regfs, it looks good! I have always wanted to do this to make life easier. Congrats on the good job so far! A question: how do i read and write the values? I tried "type" and notepad but it says it can't find the files.
Are you looking for people to contribute to the project? I am definitely interested.
It sounds like a great idea. I am sure lots of people (including myself) are willing to help out. I personally am interested in implementing a R/W registry filesystem (hopefully in usermode, when you are finished), I think that would be really useful for solving a lot of windows deployment issues...
good luck to you.
It is pretty insane that people on here are saying they've never taken such a course in their university/college career.
In Canada, not only will your CS/CE degree include such a course as mandatory, during my time in high school (this is in toronto) we had a grade 13th CS course that went through all the different steps of software engineering, going through the various waterfall/spiral dev cycles, writing specs, feasibility studies, to actually implementing and testing a project.
It blows my mind that people who would be working as CS professionals would not have such knowledge before entering the workplace.
Office and OS do not stock price increase make
I am curious as to how PNRP works with Zeroconf. Does it 1)implement zeroconf, 2)interoperate with zeroconf, or 3)is completely incompatible with zeroconf? AFAIK zeroconf already does p2p name resolution and is an open standard. Is PNRP gonna be a standard?
.
you actually don't even need IIS to use asp.net i believe. there has been a asp.net module for apache for a long time. check out http://www.apache-asp.org/
is Emacs, end of story. Ctrl-x-Ctrl-c.
how about superfetch? introducing heuristics and statistical models into the OS seems to be the next evolutionary step in OS designs. It has been something people have talked about a lot in CS, and MS seems to be the first to bring it to the table as far as i know.
or, what about infocard? the identity infrastructure MS is building that Lawrence Lessig says is on the right track to "save the net"? it seems to be a pretty innovative way to tackle a big problem from the ground up.
or perhaps bitLocker, the data protection technology MS is creating to bring volume wide encryption into the OS? The idea might not be super new but the way it is implemented (being optionally hardware-based) seems to be pretty innovative.
There are also various other features, like "readydrive" utilizing nvrams to boot faster (innovative usage of new hardware); the "breadcrumb bar" that brings a new UI element into the desktop shell; "sideshow" which works together with new innovative hardware components... none of these seem like rehashing of old ideas from unices or macs. perhaps they might make good feature candidates for apple to start their photocopiers on in cupertino?
check out the list of new vista features on wikipedia.
this guy tried it using these steps, and it seems to be working nicely for him. He had to delete his EFI partition, which i guess is not really used on x86 macbooks.
As always your mileage might vary i guess.
The real problem that has always been there with the microkernel is that, sure you can take all the device drivers or MM or FS out of the kernel and make them servers, but what happens when they fail?
Say your ATI video card's driver ran into a synchronization issue that is unsolvable, and panics. Sure, it's isolated from the microkernel. But so what? You *need* the video driver to do anything on the system. So the kernel goes off and restart the video driver server. But wait, you can't just restart the video driver... Some other piece of code say, the power management code for video, is somewhat of a state machine, so that needs to be restarted, too. Then of course, every app in userland that uses video needs to be restarted, to sync up to the new video driver. So sure you haven't restarted the kernel... But you've restarted a significant portion of the system, that to the user's perception the system has effectively rebooted.
This is certainly not true for every piece of kernel code, but it is true for a lot of code in the kernel. Imagine if your file system server goes down. Or your Virtual memory server goes down. All these things are so essential to the system, even if we do isolate them from the core, the entire system is effectively rendered useless without them. Back to the compartmentalized ship analogy... Sure, if one of the non-essential compartment is leaking, then the ship can pretty much go on sailing without a problem. But if one of the engine rooms or its equivalent (I don't know too much about ships unfortunately) is breached, what difference does it make that it's compartmentalized? That baby is going down.
Some completely offtopicness:
i nstallx86.mspx to grab the MS debugger. Once inside the debugger, usually only 1 or 2 steps are needed to figure out who the culprit is that caused the bugcheck. (by seeing what's on the stack at the crash for example). The other thing you can do, if you can boot into safemode, is to open up the event log viewer and typically there are messages that explain who caused the last bugcheck.
XP by default will reboot when it encounters a bugcheck (or BSOD as people call it). However typically a mini dump or a full memory dump is created in your %windows% directory. This is pretty much like a core file on unix, with the stack information necessary for debugging.
So, if you ever feel brave enough to do some windoze hacking, you can grab this file by booting into a safeOS on the system or a linux live CD, and then head to http://www.microsoft.com/whdc/devtools/debugging/
This should be really simple with bcdedit actually. Do you already have an entry (in bcdedit lingo a "data store") in bcdedit that corresponds to your XP partition? What exactly is the problem you are running into? bcdedit is actually a really powerful bootloader, IMHO.
= /library/en-us/BCD/bcd/portal.aspl &sid=9f93849fb3dad5edd85df3d19778e44f
Check out some of these google results:
http://msdn.microsoft.com/library/default.asp?url
http://www.pro-networks.org/forum/post-580795.htm
And no your multibooting woes have nothing to do with bitlocker, that's for sure.
> Talk around the vending machines in legal is that the delay has nothing to do with coding, slipped schedules or anything else.
I am not so sure if this guy is really a MS employee. There are not too many vending machines in MS buildings. You know, with the free pops and all.