Heh. Yeah, I didn't know the context. I'm not certain to what extent it would make the system more reliable, but I've certainly got an application for a reliable and secure system where speed isn't an absolute requirement.
Unfortunately, I've had more hardware problems I'm not certain wouldn't take down the system in the first place, regardless of kernel architecture.
Could someone please tell me why no other OSes are microkernels?
Because they make the system run more slowly.
OpenBSD likes security, why don't they take up the job?
From your signature: "I'm glad I don't put much basis on yammerings on slashdot"... "In fact, I'm real glad." --Theo de Raadt
Unix and Linux doesn't allow any ordinary application to write to the kernel.
No, but programs running as root, or SUID are. Also, all the drivers in the kernel are as well. I've had Unix system freeze up because of writing CDs, loading videocard drivers, and other privlidged things which wouldn't happen with a microkernel.
No, they're just running with permissions to more files and a couple extra syscalls that may or may not be available to other users...depending on the system, of course. On BSD systems, there are devices that provide direct kernel memory access. You don't have to be root to manipulate kernel memory, you just need appropriate access to one of these devices.
If they would invest some resources into the things most people want in a desktop, I have no doubt they could do a good job of taking over that as well.
Nah, I doubt it. They do what they do well. You can get *really* far in software development if you don't have to worry about stupid little complaints from end users.
Right -- and also avoid receiving any improvements to the software performed by other users. A bug in a BSD program can stay unfixed until the author finds it. In a GPL program, it gets fixed as soon as ANYONE finds it.
That doesn't even make sense. I rely on BSD systems that have user contributions regularly, including fixes.
Also, can you name a single embedded device that uses BSD? Embedded linux is hot. Embedded BSD is unheard of.
You don't happen to work in an embedded sector, do you? You hear about embedded Linux because you're listening for info on Linux. I work for a company that produces embedded systems (we sell approximately 2,500/day) and we've just recently considered moving away from PSOS. Linux was absolutely not an option for a variety of reasons. The decision came down to NetBSD, OpenBSD or FreeBSD.
The only strange thing was that FreeBSD was chosen because they were further along in granular locks that are required for a preemptive kernel.
There are many reasons for people to go with BSD systems...licensing is a big one, but take off your blinders and you'll find lots of technical reasons as well.
That might explain the one Linux system on that list, and possibly some of the FreeBSD systems if they happened at the exact right time. However, the majority of the systems on that list are BSDi.
I've had programmers working with me who couldn't figure out how to launch java programs on their own.
That said, I'd wager that the majority of java programmers couldn't tell you how they could get a ClassCastException when casting an instance of a given class to the exact same class.
(answer: two different class loaders loaded the class)
Personally, I think perl is too bizarre and ambiguous. It puts forth too much effort trying to figure out what you mean instead of teaching you to just say it. Even with applescript, there's little ambiguity.
I think python is an excellent learning language. It's pretty consistent, straightforward, comes with a lot of tools, does OO, imperative, functional, and requires the user to write readable code.
I found plenty of documentation at Apple's site for learning applescript. I've written a lot of scripts to help me with video processing (i.e. letterboxing a quicktime video, stretching an anamorphic DV video, etc...), and finding duplicates in my address book and stuff.
This is a good start: http://www.apple.com/applescript/
While I'm sure Dijkstra would agree with you, I have to say I think this is a myth. I don't think that "bad programming practices" are habits that are difficult to change. I find that usually, as soon as someone is shown a "better" way to do something, they will immediately start using that programming practice and forget all about the way they used to do it.
Personally, I feel that Perl is the new BASIC. Perl programmers learn a lot of bad habits that are hard to break, even when shown a clearly superior (and easier) way to do things.
I was having a conversation with a cow-orker (who is a hard-core perl programmer) a couple of days ago who was completely convinced that manually checking the result of every function call is superior to solid exception handling.
I want to emit the least amount of effort to get the most reliable and correct application possible. If I have to do the same thing many times, my language has failed me.
I don't believe java should be taught at all. It's very easy to figure out after you have a good foundation of programming systems. It's not a good starting point because it's inconsistent. (BTW, I'm a professional java programmer, it's a good tool for the job I'm doing).
I played with some of these one day at a library and was a bit dissapointed that it did not allow you to write functions. I wanted to start creating higher level operations out of their in-box primitives. This is where one starts seing the benefit of automation.
I haven't played with my mindstorms in a while, but last time I did, there were *lots* of programming systems available for them. I was using something called nqc (not quite C). It looked a lot like C...had a decent enough threading model, and worked well.
I can't argue with you there. The stuff that gets through SA and my other filters is still quite annoying...not to mention I do look at my spam folder about once a day just to see if anything has slipped through it.
However, there are other things that go through the email that she's just not ready to receive. Whitelist is the way to go for unattended emails so far.
Process the mail on your own server. Don't allow any mail to come through that isn't from a known, acceptable source.
That's what we do. She can read her mail all by herself whenever she wants to (and we encourage her to). However, she only gets to read mail from acceptable addresses.
No, it's not perfect, but it makes me more comfortable. My wife receives any mail that comes from an address not in her whitelist.
I wish they disclosed the breakdown of ages. There is a vast difference in seventeen year old reading e-mail without their parents and seven year olds.
My seven year old reads email on her own. Any email she receives that is not coming from someone on a whitelist that I maintain goes into a mailbox under her mother's account (this is after spam filtering, of course).
Her mom will drop it into her inbox or whatever when it's appropriate, and let her know that she got this mail, and usually ask me to add it to her whitelist.
(sorry for the confusing pronouns, this would be easier to explain if I had a boy).
That about sums it up: GIF--color depth not important, crisp lines important, compression important. JPEG--color depth important, crisp lines not important, compression important. PNG--color depth and crisp lines both important, compression not as important (or the image just happens to compress well with PNG).
I have yet to find a gif from which I could not create a smaller png file. Do you have one?
As far as I'm concerned, PNG is superior in every way.
All of my web sites work with my wife's. Including squirrelmail (although she has trouble sending due to some javascript problem, she does use it to read her mail during the day).
Basic: I think this one sucks pretty bad and never record anything with it. However, I would get like 130+ hours of recording time on my 120GB TiVo if I used it all the time. Some people are satisfied with it, but I suspect those people have smaller TV sets.
I use basic almost all the time. I'm usually staring at my computer screen while the TV is on. I choose quantity over quality.
Some things (i.e. the opening of Futurama) suck at basic...but for the most part, I'm just used to it and don't care.
Is it fair to say that sysadmins fix things and developers break them?
Our last three major outtages were as follows:
1) DB Server failed in a way we cannot reproduce in development (recovered easily, but manually).
2) Sysadmins didn't install the correct certs the second time (renewing).
3) Major power outage to main office pointed out that all DNS was served from the main office.
The last one produced a minor bug where someone had configured production servers to ignore (NOOP) a reasonably large percentage of transactions. Still haven't figured out who did that one, but it, um, magically fixed itself about the time it was discovered.
We all make mistakes.
Sysadmin work *should* be more automatable (word?) so good process should lead to fewer errors (all of the above were process bugs, possibly excepting the DB failure, which is a vendor choice bug).
In development, we're always doing new things and trying to master testing.
Yes, if I need speed, I use C, the same as anyone else.
Not me. There are some *fast* functional programming language compilers out there. I've ported some of my log processors from python to OCaml, scheme (for the bigloo compiler) and C. The OCaml and bigloo compiled versions were almost exactly the same speed, and only slightly slower than the C version. The C version took me a *LOT* longer to write due to the difficulty of expressing what I was trying to do in C and making sure it was doing it safely.
In general, I agree with you, but I make great efforts to avoid C, as I am one of those who believe that C is inappropriate for almost every task for which it's used today (even some of the ones for which I'm using it).
That's a dumb benchmark. That will tell you that the program *starts* slow...and that, perhaps, invoking an application for each time you want to do something would be roughly the equivalent of starting a new web browser (IE on Windows doesn't count) every time you want to look at a new web page...or booting your operating system every time you want to run a program.
People don't generally write one-off small apps they intend to run hundreds of times a day in java. That's not what it's designed to do.
If you want to compare performance, do something real-like and have it run once in your two or so languages to get a base, and then run them a few thousand times. Something more like this:
Heh. Yeah, I didn't know the context. I'm not certain to what extent it would make the system more reliable, but I've certainly got an application for a reliable and secure system where speed isn't an absolute requirement.
Unfortunately, I've had more hardware problems I'm not certain wouldn't take down the system in the first place, regardless of kernel architecture.
Could someone please tell me why no other OSes are microkernels?
Because they make the system run more slowly.
OpenBSD likes security, why don't they take up the job?
From your signature: "I'm glad I don't put much basis on yammerings on slashdot"... "In fact, I'm real glad." --Theo de Raadt
Unix and Linux doesn't allow any ordinary application to write to the kernel.
No, but programs running as root, or SUID are. Also, all the drivers in the kernel are as well. I've had Unix system freeze up because of writing CDs, loading videocard drivers, and other privlidged things which wouldn't happen with a microkernel.
No, they're just running with permissions to more files and a couple extra syscalls that may or may not be available to other users...depending on the system, of course. On BSD systems, there are devices that provide direct kernel memory access. You don't have to be root to manipulate kernel memory, you just need appropriate access to one of these devices.
If they would invest some resources into the things most people want in a desktop, I have no doubt they could do a good job of taking over that as well.
Nah, I doubt it. They do what they do well. You can get *really* far in software development if you don't have to worry about stupid little complaints from end users.
Right -- and also avoid receiving any improvements to the software performed by other users. A bug in a BSD program can stay unfixed until the author finds it. In a GPL program, it gets fixed as soon as ANYONE finds it.
That doesn't even make sense. I rely on BSD systems that have user contributions regularly, including fixes.
Also, can you name a single embedded device that uses BSD? Embedded linux is hot. Embedded BSD is unheard of.
You don't happen to work in an embedded sector, do you? You hear about embedded Linux because you're listening for info on Linux. I work for a company that produces embedded systems (we sell approximately 2,500/day) and we've just recently considered moving away from PSOS. Linux was absolutely not an option for a variety of reasons. The decision came down to NetBSD, OpenBSD or FreeBSD.
The only strange thing was that FreeBSD was chosen because they were further along in granular locks that are required for a preemptive kernel.
There are many reasons for people to go with BSD systems...licensing is a big one, but take off your blinders and you'll find lots of technical reasons as well.
That might explain the one Linux system on that list, and possibly some of the FreeBSD systems if they happened at the exact right time. However, the majority of the systems on that list are BSDi.
but try explaining to a kid how classpaths work
I've had programmers working with me who couldn't figure out how to launch java programs on their own.
That said, I'd wager that the majority of java programmers couldn't tell you how they could get a ClassCastException when casting an instance of a given class to the exact same class.
(answer: two different class loaders loaded the class)
Personally, I think perl is too bizarre and ambiguous. It puts forth too much effort trying to figure out what you mean instead of teaching you to just say it. Even with applescript, there's little ambiguity.
I think python is an excellent learning language. It's pretty consistent, straightforward, comes with a lot of tools, does OO, imperative, functional, and requires the user to write readable code.
I found plenty of documentation at Apple's site for learning applescript. I've written a lot of scripts to help me with video processing (i.e. letterboxing a quicktime video, stretching an anamorphic DV video, etc...), and finding duplicates in my address book and stuff.
This is a good start: http://www.apple.com/applescript/
Download scripts and play!
I am also afraid of saving the image. I can easily make changes that I don't know how to revert.
Have it save as a new version. You can always go back to an older version of the image.
While I'm sure Dijkstra would agree with you, I have to say I think this is a myth. I don't think that "bad programming practices" are habits that are difficult to change. I find that usually, as soon as someone is shown a "better" way to do something, they will immediately start using that programming practice and forget all about the way they used to do it.
Personally, I feel that Perl is the new BASIC. Perl programmers learn a lot of bad habits that are hard to break, even when shown a clearly superior (and easier) way to do things.
I was having a conversation with a cow-orker (who is a hard-core perl programmer) a couple of days ago who was completely convinced that manually checking the result of every function call is superior to solid exception handling.
I want to emit the least amount of effort to get the most reliable and correct application possible. If I have to do the same thing many times, my language has failed me.
I don't believe java should be taught at all. It's very easy to figure out after you have a good foundation of programming systems. It's not a good starting point because it's inconsistent. (BTW, I'm a professional java programmer, it's a good tool for the job I'm doing).
I played with some of these one day at a library and was a bit dissapointed that it did not allow you to write functions. I wanted to start creating higher level operations out of their in-box primitives. This is where one starts seing the benefit of automation.
I haven't played with my mindstorms in a while, but last time I did, there were *lots* of programming systems available for them. I was using something called nqc (not quite C). It looked a lot like C...had a decent enough threading model, and worked well.
I can't argue with you there. The stuff that gets through SA and my other filters is still quite annoying...not to mention I do look at my spam folder about once a day just to see if anything has slipped through it.
However, there are other things that go through the email that she's just not ready to receive. Whitelist is the way to go for unattended emails so far.
Cursive is:
a) hard to learn,
b) hard to use, and
c) (usually) hard to read.
Perl is programming in cursive.
This is very close to what I do, except the mail automatically gets delivered to a mailbox my wife reads.
Still not enough, but it's doing well so far.
What can I do?
Process the mail on your own server. Don't allow any mail to come through that isn't from a known, acceptable source.
That's what we do. She can read her mail all by herself whenever she wants to (and we encourage her to). However, she only gets to read mail from acceptable addresses.
No, it's not perfect, but it makes me more comfortable. My wife receives any mail that comes from an address not in her whitelist.
I wish they disclosed the breakdown of ages. There is a vast difference in seventeen year old reading e-mail without their parents and seven year olds.
My seven year old reads email on her own. Any email she receives that is not coming from someone on a whitelist that I maintain goes into a mailbox under her mother's account (this is after spam filtering, of course).
Her mom will drop it into her inbox or whatever when it's appropriate, and let her know that she got this mail, and usually ask me to add it to her whitelist.
(sorry for the confusing pronouns, this would be easier to explain if I had a boy).
That about sums it up: GIF--color depth not important, crisp lines important, compression important. JPEG--color depth important, crisp lines not important, compression important. PNG--color depth and crisp lines both important, compression not as important (or the image just happens to compress well with PNG).
I have yet to find a gif from which I could not create a smaller png file. Do you have one?
As far as I'm concerned, PNG is superior in every way.
Well, my old powerbook has gigE. I'm sure new desktops with more processing power won't need the same thing, though. :)
so tell me, why do YOU need gigabit ethernet on a workstation?
Because my system acquires DV data far faster than I can transfer it over 100Mbps ethernet.
All of my web sites work with my wife's. Including squirrelmail (although she has trouble sending due to some javascript problem, she does use it to read her mail during the day).
Basic: I think this one sucks pretty bad and never record anything with it. However, I would get like 130+ hours of recording time on my 120GB TiVo if I used it all the time. Some people are satisfied with it, but I suspect those people have smaller TV sets.
I use basic almost all the time. I'm usually staring at my computer screen while the TV is on. I choose quantity over quality.
Some things (i.e. the opening of Futurama) suck at basic...but for the most part, I'm just used to it and don't care.
Is it fair to say that sysadmins fix things and developers break them?
Our last three major outtages were as follows:
1) DB Server failed in a way we cannot reproduce in development (recovered easily, but manually).
2) Sysadmins didn't install the correct certs the second time (renewing).
3) Major power outage to main office pointed out that all DNS was served from the main office.
The last one produced a minor bug where someone had configured production servers to ignore (NOOP) a reasonably large percentage of transactions. Still haven't figured out who did that one, but it, um, magically fixed itself about the time it was discovered.
We all make mistakes.
Sysadmin work *should* be more automatable (word?) so good process should lead to fewer errors (all of the above were process bugs, possibly excepting the DB failure, which is a vendor choice bug).
In development, we're always doing new things and trying to master testing.
Yes, if I need speed, I use C, the same as anyone else.
Not me. There are some *fast* functional programming language compilers out there. I've ported some of my log processors from python to OCaml, scheme (for the bigloo compiler) and C. The OCaml and bigloo compiled versions were almost exactly the same speed, and only slightly slower than the C version. The C version took me a *LOT* longer to write due to the difficulty of expressing what I was trying to do in C and making sure it was doing it safely.
In general, I agree with you, but I make great efforts to avoid C, as I am one of those who believe that C is inappropriate for almost every task for which it's used today (even some of the ones for which I'm using it).
That's a dumb benchmark. That will tell you that the program *starts* slow...and that, perhaps, invoking an application for each time you want to do something would be roughly the equivalent of starting a new web browser (IE on Windows doesn't count) every time you want to look at a new web page...or booting your operating system every time you want to run a program.
People don't generally write one-off small apps they intend to run hundreds of times a day in java. That's not what it's designed to do.
If you want to compare performance, do something real-like and have it run once in your two or so languages to get a base, and then run them a few thousand times. Something more like this:
http://www.bagley.org/~doug/shootout/
Yep, that's the one. It tries to use the HTTP proxy but does not speak HTTP over it. I suggest complaining to Apple. It sucks.