The reason most "microkernels" have bad performance is that they are not anywhere near "micro" enough.
Indeed, and one of the ways they achieve this is by NOT performing context switches between different security domains for every message. For example, the L3 and L4 family kernels delegate security domain management to user-space programs, and L4Ka supports message passing operations entirely in user space... with no kernel intervention.
This is bringing the design back to the real-time operating systems that inspired the whole Microkernel concept.
Early abort for a liquid fueled rocket is pretty spectacular as well, but it's hard to beat this fireworks show with a failure in a USAF solid booster (17 foot crack in the booster let go all at once) (another cut of the same incident).
Well, technically, the compiler assumed that since it had been given the '-fdelete-null-pointer-checks' optimization option, that that was what you wanted it to do.:)
If that option changes the semantics of the language, it's not an optimization. If you explicitly check for a null pointer, then no compiler flags should remove that check. If the compiler is generating an extra null pointer check for safety, that's a different matter, but REMOVING that safety check shouldn't remove explicitly included code.
If it does, that's a bug. Which I hope the compiler guys will decide, and fix it, instead of arguing that the programmer should have to know that -O3 or -fdelete-null-pointer-checks deletes code that other code that it's optimized out depends on for correctness.
Perhaps it should have been restricted to just -O3, where the "dangerous" optimizations supposedly live?
No, it should be in the -fthis-is-not-a-c-compiler -fyes-I-really-mean-it options -fyes-I-am-an-idiot-why-do-you-ask.
If an optimization that is useful for, say, 90%(*) of compiler users, should it be included and on by default, or are you/others suggesting an optimization should only default to on if its valid for *all* compiler users?
If an optimization changes the semantics of the language, it should be on for zero percent of the users, no matter what options they set. Or else it's not an optimization, it's a bug.
Yeh, and Lotus Notes isn't a web page, but I can describe Lotus Notes as a web application if the web was based on database replication instead of HTTP and you understand the point of the analogy (well, I hope you do). Sharepoint is attempting to address the same problem space that a wiki does, and it's doing it from a completely wrong direction, and it's doing it with the wrong tools, with the goal of micromanaging things that shouldn't be micromanaged, and with a user interface whose main goal seems to have been rehabilitating IE6.
It's only bad if your admin is shit. I'm assuming you set it up?;)
Hell no I didn't, I'm not crazy or sadistic.
I've seen Sharepoints set up by dozens of people, at multiple companies, and they always suck dirty swamp water through used oil filters. There are no words for just how bad Sharepoint is.
I use virtualization where it's useful. I don't run my desktop under it, I don't use it where performance is critical. I use FreeBSD jails instead of virtual machines on my colo because they've got less overhead.
There's no benefit to a micro-kernel in these so-called ring -1 attacks. None.
You know, the really odd thing is that that's what I just said. Microkernels are not about security, they're about internal kernel API design. That's why Hurd and Mach suck, they're taking the API design guidelines and treating them as kernel architecture.
Microkernels that provide security boundaries between drivers have tended to have unacceptable levels of context switching in the kernel, so once you get past the theoretical stage and you're trying to push the performance to the point where you can compete with monolithic kernels... you're going to get rid of those boundaries.
Microkernels should be seen as a design model for a kernel, an abstraction of the traditional real-time kernel to a broader application area. You shouldn't demand or expect a microkernel to have actual separate processes for each component any more than you should or would demand a TCP/IP stack actually implement separate code layers and call gates for each level of the network stack.
The compiler assumed that if tun had been dereferenced, it couldn't be NULL. That's a false assumption, and there's probably dozens of other time-bombs sitting in code compiled with that compiler that just haven't been discovered yet.
A comment on Reddit pointed out something interesting. He speculated that the reason the test was after the assignment is that the programmer was trying to follow the often recommended style of initializing your variables when you declare them. The kernel uses C89, which requires all declarations to be at the top of the function, before any code (other than initializers). Thus, he couldn't test for null before initializing.
You mean there was some orbital mind control laser preventing him from writing this?
struct sock *sk = tun ? tun->sk : NULL;// initialize sk with tun->sk ... if (!tun)
return POLLERR;// if tun is NULL return error
Or this?
struct sock *sk; ... if (!tun)
return POLLERR;// if tun is NULL return error
I use Sharepoint at work, and... well, it's like what you'd expect if someone had a third-hand conversation about what a Wiki was like, wrote up a Powerpoint about it, translated into Portuguese using a dictionary written by someone who knew neither Portuguese or English, translated back using Babelfish, and given to a bunch of ex-mainframe programmers to implement.
It's ugly, cumbersome, even if you use IE (god help you if you're using Firefox or Safari). Using a Sharepoint server is going to knock 30% off your productivity right off the top. You're better off paying for Office licenses for everyone.
Build a linear induction motor up the side of Mauna Kea and launch all your bulk materials that way, leave the low-acceleration launch capacity for humans.
And by the time of the release of NCSA Mosaic 0.91 web designers had figured out how to bungle pages in such a way as to cause them to be garbled when viewed with the "wrong" font.
People had figured that out by the late '70s, but it wasn't measured in any standard way until the creation of the Indent-o-Meter in the early '90s.
Web pages should let the user select how it looks. That's why it was created.
Which is why you can ALREADY tell the browser to ignore font requests from the page, and have been able to since, oh, some time around the release of NCSA Mosaic 0.9...
I remember seeing a proposal for something like this: it was some kind of complex copy-protection-ridden cruft that forced you to run a magic DRM checksum generator over your document to authenticate it to your font server, and to rebuild some font server file every time you updated the document.
The guy seems to have removed most of the letters from his site... all the ones I pulled up were blank. I guess he's just trying to promote his book now.
The reason most "microkernels" have bad performance is that they are not anywhere near "micro" enough.
Indeed, and one of the ways they achieve this is by NOT performing context switches between different security domains for every message. For example, the L3 and L4 family kernels delegate security domain management to user-space programs, and L4Ka supports message passing operations entirely in user space... with no kernel intervention.
This is bringing the design back to the real-time operating systems that inspired the whole Microkernel concept.
Early abort for a liquid fueled rocket is pretty spectacular as well, but it's hard to beat this fireworks show with a failure in a USAF solid booster (17 foot crack in the booster let go all at once) (another cut of the same incident).
Well, technically, the compiler assumed that since it had been given the '-fdelete-null-pointer-checks' optimization option, that that was what you wanted it to do. :)
If that option changes the semantics of the language, it's not an optimization. If you explicitly check for a null pointer, then no compiler flags should remove that check. If the compiler is generating an extra null pointer check for safety, that's a different matter, but REMOVING that safety check shouldn't remove explicitly included code.
If it does, that's a bug. Which I hope the compiler guys will decide, and fix it, instead of arguing that the programmer should have to know that -O3 or -fdelete-null-pointer-checks deletes code that other code that it's optimized out depends on for correctness.
Perhaps it should have been restricted to just -O3, where the "dangerous" optimizations supposedly live?
No, it should be in the -fthis-is-not-a-c-compiler -fyes-I-really-mean-it options -fyes-I-am-an-idiot-why-do-you-ask.
If an optimization that is useful for, say, 90%(*) of compiler users, should it be included and on by default, or are you/others suggesting an optimization should only default to on if its valid for *all* compiler users?
If an optimization changes the semantics of the language, it should be on for zero percent of the users, no matter what options they set. Or else it's not an optimization, it's a bug.
You didn't read the second sentence. He wants to initialize variable at declaration time.
Which my first alternate did.
That's cause it's not a Wiki.
Yeh, and Lotus Notes isn't a web page, but I can describe Lotus Notes as a web application if the web was based on database replication instead of HTTP and you understand the point of the analogy (well, I hope you do). Sharepoint is attempting to address the same problem space that a wiki does, and it's doing it from a completely wrong direction, and it's doing it with the wrong tools, with the goal of micromanaging things that shouldn't be micromanaged, and with a user interface whose main goal seems to have been rehabilitating IE6.
It's only bad if your admin is shit. I'm assuming you set it up? ;)
Hell no I didn't, I'm not crazy or sadistic.
I've seen Sharepoints set up by dozens of people, at multiple companies, and they always suck dirty swamp water through used oil filters. There are no words for just how bad Sharepoint is.
Yet you use virtualization.
I use virtualization where it's useful. I don't run my desktop under it, I don't use it where performance is critical. I use FreeBSD jails instead of virtual machines on my colo because they've got less overhead.
There's no benefit to a micro-kernel in these so-called ring -1 attacks. None.
You know, the really odd thing is that that's what I just said. Microkernels are not about security, they're about internal kernel API design. That's why Hurd and Mach suck, they're taking the API design guidelines and treating them as kernel architecture.
Microkernels that provide security boundaries between drivers have tended to have unacceptable levels of context switching in the kernel, so once you get past the theoretical stage and you're trying to push the performance to the point where you can compete with monolithic kernels... you're going to get rid of those boundaries.
Microkernels should be seen as a design model for a kernel, an abstraction of the traditional real-time kernel to a broader application area. You shouldn't demand or expect a microkernel to have actual separate processes for each component any more than you should or would demand a TCP/IP stack actually implement separate code layers and call gates for each level of the network stack.
The compiler assumed that if tun had been dereferenced, it couldn't be NULL. That's a false assumption, and there's probably dozens of other time-bombs sitting in code compiled with that compiler that just haven't been discovered yet.
A comment on Reddit pointed out something interesting. He speculated that the reason the test was after the assignment is that the programmer was trying to follow the often recommended style of initializing your variables when you declare them. The kernel uses C89, which requires all declarations to be at the top of the function, before any code (other than initializers). Thus, he couldn't test for null before initializing.
You mean there was some orbital mind control laser preventing him from writing this?
Or this?
This was a simple oversight.
I use Sharepoint at work, and... well, it's like what you'd expect if someone had a third-hand conversation about what a Wiki was like, wrote up a Powerpoint about it, translated into Portuguese using a dictionary written by someone who knew neither Portuguese or English, translated back using Babelfish, and given to a bunch of ex-mainframe programmers to implement.
It's ugly, cumbersome, even if you use IE (god help you if you're using Firefox or Safari). Using a Sharepoint server is going to knock 30% off your productivity right off the top. You're better off paying for Office licenses for everyone.
Palm had the best handheld sync software I've ever used. I've used Hotsync, Activesync, iSync, and Missing Sync, and Hotsync is the only one that:
* Never lost data.
* Never duplicated data.
* Allowed me to sync with as many computers as I wanted.
Palm needs to bring back Hotsync, and use the standard iTunes API to access playlists and tracks.
Other then OS X all the other Unixes are in heavy competition against Linux and Windows for its survival.
Linux is UNIX too.
Build a linear induction motor up the side of Mauna Kea and launch all your bulk materials that way, leave the low-acceleration launch capacity for humans.
And by the time of the release of NCSA Mosaic 0.91 web designers had figured out how to bungle pages in such a way as to cause them to be garbled when viewed with the "wrong" font.
People had figured that out by the late '70s, but it wasn't measured in any standard way until the creation of the Indent-o-Meter in the early '90s.
Except then the bug is patched, and all of a sudden you aren't running the default settings for FF and things get weird.
I've got at least a dozen non-default settings I've set in about:config. What's one more?
Mod Parent Up "this should have been in the summary, Taco".
Yellow Ransom Note on a purple background?
Web pages should let the user select how it looks. That's why it was created.
Which is why you can ALREADY tell the browser to ignore font requests from the page, and have been able to since, oh, some time around the release of NCSA Mosaic 0.9...
I only use IE 5.5!
If you thought MySpace pages looked like crap, wait until people start using crazy, illegible fonts.
Ransom Note is a perfectly cromulent font!
You *like* Times New Roman on the screen? Are you mad?
Serif fonts belong on dead trees.
I remember seeing a proposal for something like this: it was some kind of complex copy-protection-ridden cruft that forced you to run a magic DRM checksum generator over your document to authenticate it to your font server, and to rebuild some font server file every time you updated the document.
The guy seems to have removed most of the letters from his site ... all the ones I pulled up were blank. I guess he's just trying to promote his book now.
Does it run GoogleOS?