Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×

Comment Re:Again, that argument is equally valid for the r (Score 1) 747

It's entirely possible to boot a Linux system with binutils or BSD userspace utilities.

Well yeah, sure, that's possible. Do you know anyone who uses such a distribution? I'm pretty sure RMS speaks of GNU/Linux because that's what people actually use.

Even if you say that the line between applications and operating system is fuzzy, I do think we can both agree that it is reasonable to count something which is required to build and boot the system as "part of the operating system", no? Especially so if we speak of the actual operating system distributions, like Debian or Fedora, which doubtlessly uses those programs for those purposes, and where it would require large amounts of work to replace them.

(Furthermore, I'm pretty sure Linux (the kernel, that is) requires GCC, GNU ld and gmake to build. I might be wrong about that, though.)

Comment Re:That argument is equally valid (Score 1) 747

It certainly isn't. Neither X, any desktop environment, Apache, MySQL, PHP, Perl or any web browser is necessary to do even so much as boot or create the system. They're all perfectly optional components that you can choose to run on top of your GNU/Linux operating system.

Sure, many people do, but others don't; either way, that's not the point. The point is that they aren't part of the operating system, and therefore there's no reason to name it after them. GNU software, on the other hand, is most necessarily and intrinsically part of the operating system, and therefore it is reasonable to acknowledge it.

Aside even from that, I would still argue that it is reasonable to credit GNU, not only for the actual software, but for the philosophy of the entire system. If it weren't for RMS, FSF and GNU, free software as we know it would probably not exist.

Comment Re:GNU/Linux is not the official name (Score 2, Insightful) 747

I think you would have a more compelling argument the day you don't:

  • use the GNU coreutils and GNU bash to run your init scripts;
  • use GNU gzip and GNU cpio to create your ramdisks;
  • use GNU GRUB to load said ramdisk and boot your Linux kernel;
  • use GNU GCC and binutils to compile the entire system; or
  • use GNU's glibc as the C library for virtually every single process in the system.

Just sayin'. And I probably missed a few things.

Comment Re:Adapt (Score 3, Interesting) 626

All that which you say is certainly true, but I would still argue that EPIC's greatest problem is its hard parallelism limit. True, it's not as hard as I tried to make it out, since an EPIC instruction bundle has its non-dependence flag, but you cannot, for instance, make an EPIC CPU break off and execute two sub-routines in parallel. Its parallelism lies only in very small spatial window of instructions.

What I'd like to see is, rather, that the CPU can implement a kind of "micro-thread" function, that would allow two larger codepaths simultaneously -- larger than what EPIC could handle, but quite possibly still far smaller than what would be efficient to distribute on OS-level threads, with all the synchronization and scheduler overhead that would mean.

Comment Re:Adapt (Score 4, Interesting) 626

As I mentioned briefly in my post, there was research into dataflow architecures in the 70's and 80's, and it turned out to be exceedingly difficult to do such things efficiently in hardware. It may very well be that they still are the final solution, but until such time as they become viable, I think doing the same thing in the compiler, as I proposed, is more than enough. That's still the computer doing it for you.

Comment Re:Adapt (Score 5, Interesting) 626

No, it's not about adaptation. The whole approach currently taken is completely, outright on-its-head wrong.

To begin with, I don't believe the article about the systems being badly prepared. I can't speak for Windows, but I know for sure that Linux is capable of far heavier SMP operation than 4 CPUs.

But more importantly, many programming tasks simply aren't meaningful to break up into such units of granularity is OS-level threads. Many programs would benefit from being able to run just some small operations (like iterations of a loop) in parallel, but just the synchronization work required to wake up even a thread from a pool to do such a thing would greatly exceed the benefit of it.

People just think about this the wrong way. Let me re-present the problem for you: CPU manufacturers have been finding it harder to scale the clock frequencies of CPUs higher, and therefore they start adding more functional units to CPUs to do more work per cycle instead. Since the normal OoO parallelization mechanisms don't scale well enough (probably for the same reasons people couldn't get data-flow architectures working at large scales back in the 80's), they add more cores instead.

The problem this gives rise to, as I stated above, is that the unit of parallelism gained by more CPUs is to large to divide the very small units of work that exist among. What is needed, I would argue, is a way to parallelize instructions in the instruction set itself. HP's/Intel's EPIC idea (which is now Itanium) wasn't stupid, but it has a hard limitation on how far it scales (currently four instructions simultaneously).

I don't have a final solution quite yet (though I am working on it as a thought project), but the problem we need to solve is getting a new instruction set which is inherently capable of parallel operation, not on adding more cores and pushing the responsibility onto the programmers for multi-threading their programs. This is the kind of the the compiler could do just fine (even the compilers that exist currently -- GCC's SSA representation of programs, for example, is excellent for these kinds of things), by isolating parts of the code in which there are no dependencies in the data-flow, and which could therefore run in parallel, but they need the support in the instruction set to be able to specify such things.

Comment Re:You don't (Score 1) 904

How about "bash virus.txt"?

I'd like to see that "solved".

(It is far from trivial to make bash non-executable - you essentially need to make a "kiosk")

Then again, that would be no different from what you'd be able to do anyway if you get a shell prompts; shell scripts are just sequences of shell commands, after all. I don't see the problem. If you don't want your users able to do stuff, then naturally, you need to give them a restricted shell, which you'd do either by putting rbash in their passwd entry, or locking down Gnome for them.

If you really feel the need to, that is; I never really understood the purpose of locking down a login session to begin with. Security problems shouldn't be solved that way anyway, and if it isn't security problems you're out to solve, then what is it that you're trying to do?

Comment Re:You don't (Score 3, Informative) 904

Guess what? noexec doesn't do jack shit on the majority of Linux systems, and does not prevent anybody from running a. You know why? /lib/ld-linux.so.2. (On x86_64, there's also /lib64/ld-linux-x86-64.so.2.)

Oh really? Seeing how mmap(2) requires the PROT_EXEC flag to make segments executable in the MMU, and checks those flags against the mode of the i-node, I found that hard to believe, and have it a try. These are the results:

$ cd /tmp
$ mkdir mtest
$ sudo mount -t tmpfs -o noexec none mtest
$ cd mtest/
$ vi test.c
$ gcc -o test test.c
$ ./test
bash: ./test: Permission denied
$ /lib/ld-linux.so.2 ./test
./test: error while loading shared libraries: ./test: failed to map segment from shared object: Operation not permitted
$ sudo /lib/ld-linux.so.2 ./test
./test: error while loading shared libraries: ./test: failed to map segment from shared object: Operation not permitted

Comment Re:Most common use of virtualization (Score 1) 422

I'm wondering though; why are all these groupware systems large, monolithic applications? I, for one, would never want to use a monolithic system like Zimbra or Citadel. (Or Exchange, for that matter, of course)

When I set up a system for just handling e-mail, I always use different programs for the different tasks -- one MTA (usually sendmail for me), one MDA (usually procmail for me), one IMAP server (usually dovecot for me), and one web front-end to it (I wrote my own web front-end, Dolda Webmail), and storing all the messages in the filesystem. You know, the standard Unix philosophy of doing one thing and doing it well?

Are there no similar subsystems for handling calendaring and tasks as well? I've heard of the CalDAV protocol, which seems kind of reasonable, but I haven't found any reasonable Linux server for it, and neither have I found any web front-end for it. And what about contact management? Are there any standards at all for that? Are there any more parts to a groupware system?

Comment Re:The difference (Score 1) 176

You are quite right in your point that "communism cannot work, since it does not deal with humans", but that is about as far as I'd be willing to agree with you.

To begin with, communism is not the ideal form of society either in practice nor in theory nor anywhere else. It is the product of a man who rejected all forms of rational thinking (you do know that Marx used Hegelian dialectics to derive communism, right?). You assert that in an ideal world, noone would be selfish, but as I have described elsewhere, a society of such beings cannot work to begin with; if noone were indeed selfish, there would be no self-interest to satisfy even by others, and noone would be happy to get work done for them, since they would not benefit from it. Selfishness, on the other hand, is what drives people (and thus, indirectly, society) forward, as I described in the post you replied to. The world of which you speak, where people are completely selfless but even so derive benefit from doing things is not only not the ideal world, it is a contradiction in terms.

Second, you describe capitalism as a system that "deals with real humans", which is a notion that I reject, and which is why capitalism and communism are not "alternatives" or "rival theories" as is often claimed. Communism, and many other theories like it, are indeed designed systems that are supposed to be applied to society. Capitalism, on the other hand, is not such a system; it was "designed" by noone, but grew by itself as a natural consequence of a society of free men. Certainly, it can be treated as a system, and there have indeed been many treaties written on it, but the difference is that capitalistic economics is a science that observes and predicts reality (as best observed in Austrian economics, as far as I've been able to tell), whereas communism is an edict, pushed onto a society.

You may want to read Common Sense by Thomas Paine, which explains quite well why we have government at all, and why government and society are two completely different things.

Comment Re:Capitalism vs. Communism (Score 2, Insightful) 176

Why should I help a blind stranger to cross the street? Why should I call police when I see someone else being robbed? Why should I tip the delivery boy? Why should I explain some stranger the way?

Because I behave like I would want others to behave. Because I think the world is a much better place to live when people are helpful, generous and . Because I am not a sociopath.

Thank you for proving my point: Obviously, you do it for selfish reasons. Per your own admission, you do it partly because you wish others to learn from your example and reap the benefits of reciprocal action, and partly because it makes you feel good ("because I am not a sociopath").

There is, as I've explained elsewhere in the thread, nothing that prevents selfish action from also benefiting others. The difference lies mainly in knowing that, ultimately, you do everything for selfish reasons, and there's no reason for being hypocritical about it.

Comment Re:Capitalism vs. Communism (Score 1) 176

Well, it's quite simple, really. I have a need for a program, so I write it. That's obviously my selfish reason for writing the code, as you rightly point out.

Then, when I decide to publish it as open source, it is for a number of reasons;

  • Partly, I tend to hope that someone will look at the code, and maybe comment on it or even improve it. That hasn't happened to any great extent, however (though I have gotten a few human language translations for a webmail that I wrote);
  • Partly, it is because of my personal joy in seeing people use what I've done. This is one of the reasons that I'd like to emphasize, though, because it may seem selfless or altruistic at first glance, which in fact it isn't;
  • Partly, when people use it, I do tend to get a variety of bug reports and comments, not on the code, but at least on the features of the program, which is often quite useful to me;
  • Partly, it lets me speak from personal experience in threads like these, rather than just speaking of principles without having partaken practically in them myself. :-)

Comment Re:Capitalism vs. Communism (Score 1) 176

Because some of us have worked out that we can do better within the structure of a healthy and functioning society than we could without one. Doing things that benefits society directly benefits us.

It seems that some people, such as yourself, think that being "selfish" implicates the rejection of society. I would argue the opposite of what you do: Doing things that benefit oneself directly benefits society. (Only I won't, because I reject speaking in such terms as a "society which can benefit", as if it were anthropomorphizable)

People benefit from being part of a society precisely because of the other people in that same society doing things that benefit themselves. It is the basis of trade; two parties exchanging goods and/or services because the things being exchanged are worth more to the other. Note, however, that none of the parties trade for the benefit of the other, but for the benefit of the self, and even despite that, both benefit.

The only difference between selfishness and altruism in 90% of cases is how long term you are thinking.

Only if you use some very odd definition of "altruism" which would be unknown. Normally, when one speaks of "altruism", one speaks of doing things with a complete lack of self-interest in the things one does, only for the benefit of others. Which is exactly why there can be no society where everyone is altruistic, because without any self-interest, there would be no benefit in any action, and everything would be pointless.

What is short-sighted is thinking that selfish action can only benefit oneself. Rather the opposite, if it did indeed not benefit the others involved in the action, it would not be agreed to in the first place. And that is why we have courts.

Slashdot Top Deals

Never ask two questions in a business letter. The reply will discuss the one you are least interested, and say nothing about the other.

Working...