Moshe Bar on Programming, Society, and Religion 847
from the evolving-in-many-ways dept.
1) As a device-driver writer...
It seems like such a chore to write drivers that work on all distros since they all use different kernels. It seems to me that businesses only develop for windows because they are guaranteed that their drivers will work on all windows machines for X (4,5,6) years without any more work. Having experience writing Linux device drivers, do you think that a cross-distribution effort to standardize on kernel versions and guarantee major hardware manufacturers this compatibility would promote driver development in Linux?
I don't think a standardized kernel version across distributions is a) feasible business-wise b) necessary c) going to make driver writing any easier. Not that it is that difficult now. I also don't think that the various kernel versions among distributions is to be blamed for bigger (if really so) number of driver developers under Windows. Most drivers do not really create problems across the different kernel versions of the distributions, in most cases a simple recompile of the kernel module with the modified kernel headers is different.
On top of that, I really suspect that writing drivers across the many Windoze versions is far more difficult because each different Windows type (95, 98, ME, 2000, XP and what have you not) is really a different OS.
2) I have only one question:
by Baldric Dominus
Does Moshe have a son/daughter named "foo"?
Moshe does not have children yet. We do plan to fork() some children eventually, but have not yet made plans about their names. :-)
3) Different social groups
As someone involved in many different activities, do you have cohesive social groups? That is, do the people from, say, your motorcycle-riding friends develop/use linux as well? I'm interested in knowing what your social ties are, being as it seems you are a fairly active individual.
The social groups of which I am a member of vary wildly, in part due to the fact that me and Ms. Bar have effectively two homes, one in Israel and one in Europe. Since Europe and the Middle East (ie Asia) differ quite substantially culturally and ethnically, I find the biggest differences lie therein. As to what concerns the various other groups (motorbikers, lawyers, business people, etc.) they do differ somewhat if on the same continent, but the diversity is actually something that attracts and intrigues me. A very typical motor-biker is not going to be a very typical kernel hacker, mostly. A very typical lawyer is not going to be a very typical Talmud student (although both study essentially just law and its practice), usually. However, I am not a typical member of any of these stereotypes (not sure if anyone really is). What unites them all is that they all do whatever they do with passion if they are good at it.
Despite staunch opposition from certain developers, Linus has recently started to maintain the kernel using the non-free BitKeeper SCM product, which is not only proprietary but also uses undocumented file formats, making interoperability difficult or impossible. Do you think it's fair to encourage developers who would otherwise keep to Free Software to turn to a proprietary solution and what is in effect, shareware?
Nobody has to use bk to create patches or to send them to Linus. It is true that Linus is more likely to include them if they come through bk, but by far not all have adopted bk (Alan Cox being one famous such exception). I personally have switched to bk for my personal stuff, but I still don't much like the bk business model. The question is: would Larry lose money in any way if he was to open up bk completely? I don't think so. The other question is: would it be so difficult to produce a bk-compatible openBK? Don't think so either. If the community continues to adopt bk at this rate, sooner or alter, someone will come out with an openBK for sure. Welcome to the wonderful world of OpenSource!
5) As a device driver writer...
do you think that the Linux kernel should follow the same route as the Mozilla project. That being that when Mozilla reaches 1.0 the API will freeze and any plugins, applications that use gecko, etc. will be compatible until version 1.2 is out. Should the Linux kernel make some sort of standardized API for drivers so a driver that works with 2.4.0 will work for 2.4.20?
No, I dont' think so. The Mozilla API model is based on an old and mean-while superseded assumption: that writing software is expensive. In the OpenSource world having to modify a driver because something changed in the kernel, is an advantage not a disadvange, both economically and techically. Proprietary software goes at the tariff of US$ 50-200 per line of debugged code. No such price applies to OpenSource software. Additionlly, if the API changes it is for a good reason. Then why not letting your driver benefit from it?
6) Database Clusters
As a cluster guru, I am curious about your take on database server clustering in both the commercial and the open-source space.
First, it appears that IBM DB2 has been wiping the floor with Oracle on the TPC benchmarks lately, and Oracle "RAC" has been a flop. However, IBM is not using any hardware from its proprietary server lines, but instead relies on clusters of "federated" databases running on 32 standard PCs running either Linux or Windows. It does appear that Oracle still generally beats IBM in raw performance on a single system (as IBM refuses to post any non-clustered benchmarks AFAIK).
Do you think that any of the hype over either of these vendors cluster packages is worth attention? Do you agree with Sun's claim that TPC(-C) no longer has any practical relevance? It all seems to be getting rather silly.
Second, is there any push to make any of the ACID-leaning open databases (Postgres, SAP-DB, etc.) fault-tolerant, perhaps using Mosix? I assume this would require modifications to Postgres enabling it to access raw partitions. Have you had any talks with the Red Hat Database people about cluster modifications to Postgres, just out of curiousity?
There have been talks with the DB2, Postgres, SAP DB and various other DB technologies. All their proprietary clustering technologies (in particular DB2's and Oracle RAC's) are bound to show very poor scalability and TOC. In the openMosix model, you install *one* DB2 or *one* Oracle 9i on one machine and - assuming we have finished implementing Distributed Shared Memory, something which we plan to do - then the processes making up an instance can migrate away to other nodes and make more room for a larger DB block caching area. All that happens transparently to the RDBMS under openMosix because we implement the clustering layer within the kernel and therefore all applications, whatever they might be, benefit from it.
Under Oracle RAC, for example, you need to install the RDMBS on everynode being part of the RAC cluster. If you need to apply a patch and that process takes, say, 2 hours, then the whole patching downtime to the DB will be 2 hours x n nodes. Also, in openMosix we are soon goin to implement Dolphin support, allowing us to copy a full 4KB page from node to node within 14.4 microseconds. Something like Oracle will immediately benefit from the cluster-wide ultra-low latency. If not in kernel space, then every application vendor would have to write his own driver, possibly conflicting with other applications trying to do the same on the same machine. In short, doing clustering at the DB application level is essentially flawed.
openMosix does not handle High Availability, so I am not answering that part of the question.
7) Not about Linux at all...
...but the article said pick anything. Since there are quite a few philosophers on Slashdot (and since I'm Jewish and this question gets a lot of thought from me, and when will I ever be able to ask again?) here's my question:
Do you see any reconciliation between science and the G-d of the Torah? What about between Science and any sort of Creationism at all? Do you see the possibility that science, as it approaches the moment of Creation itself, becomes more in tune with religion? I guess a big part of what I'm asking - do you see a place for (or proof of) G-d in science?
No, as much as I am firm believer in our G-d, I do not believe the two things can ever go together in harmony. We know the world created itself a few billion years ago and not 5762 years ago (according to the Jewish counting). We know that evolution is the culprit for that inexplicably destructive and increasingly contradictory thing called the human, the human was not made directly by G-d. Yet, the religious teachings really do make for a more peaceful and quality living if followed the same way by all people. In my view, religious belief and science do not negate one another on the philosophic level, but on the at-face-value level. The more you try to negate G-d the more you end up having to believe in something in its stead. Kierkegaard for all his trying to disprove G-d always came back to G-d. Camus' attempt to show that there is no G-d only shows how divine the emptiness is that is left behind once you eliminate G-d. Staunch atheism is ultimately only an active attempt at ignoring the question what is the divine if it is not G-d, not at answering it.
8) What area of law are you studying?
According to the FAQ on your website, you are currently studying for your first law degree. With such a heavy technical background, especially in CS, I am curious as to what area of the law you are planning on going into. Is it a technology-related area? It would be nice to have some more technically-capable people in the law profession, especially those who are Linux friendly. Or is going into law just your way of making money for that early retirement?
I am studying law because at my age I already see how much faster younger programmers are than me. Back when I was in my early twenties nobody could beat me at programming. Nowadays, when I sit next to people like Andrea Arcangeli, I realize that programming, too, (even considering the advantage of experience) is for the young. Perhapes extreme programming, ie good quality, high speed programming, should be considered a sport and not an art or science or a skill. Since, I do not see myself being a programmer at 60 years (which is more than years from now), I deduced that I have to find a new job between then and now. Law is something that really goes well with progressing age. My area of law will be mergers/aquisitions, something that mainly bases on a wide-spread social network rather than talent or very intimate knowledge of the law. I do not actually intend to be a very good lawyer, just to be one.
9) Single Memory Space for openMosix
Right now, as you've mentioned in the documentation, programs that access databases or shared memory do not derive any particular benefit from using openMosix.
Is there any work planned to enhance openMosix to support a single memory space among all nodes or to otherwise allow implicit sharing of memory? Is this what the "network RAM" research is attempting?
Implementing something along these lines in an efficient manner would hugely expand the range of problems that openMosix could be used to tackle.
Imagine being able to split a database transaction into hundreds of parts and run it in parallel on hundreds of openMosix nodes with a terabyte or more of combined RAM. The processes that share data would automatically migrate to the same node. Mmmmm good!
Network RAM is simply allowing mallocs or swap-outs to be done to the RAM of neighboring cluster node rather than to physical swap space on disk. In order to run databases under openMosix we will need to implement distributed shared memory. Due to the exceptional complexity of this project, I do not assume to have a valid implementation before the end of 2004.
10) IBM and Hercules?
by Jay Maynard
(I'm the maintainer of Hercules, an open source emulator for IBM mainframes that runs on Linux and Windows.)
You've mentioned Hercules in your column a couple of times, both quite favorably. Thanks!
One industry analyst from Germany has claimed repeatedly that IBM is getting ready to slap down Hercules with its lawyers, on the basis of some unspecified violations of their intellectual property rights. He's said that it's not just patent infringement, but refuses to go into exactly what else.
What effect would you think that taking such an action would have on IBM once the open source community finds out?
Hi Jay, long time no hear! I have heard similar rumours. If IBM is reading this: going against Hercules would be an extremely stupid move (not unlike the one by the asinine Adobe legal counsels against Sklyarov). Hercules only helps to sell more mainframes because as people familiarize with the Linux on the S/390 architecture, they will ultimately end up buying a mainframe to run their production workload. If you - as a vendor - want a particular computing platform to succeed, then you do everything possible to spread the gospel according to that platform. You don't go and destroy evangelists doing that for you. I use Hercules very often, and actually have an instance of Hercules running under Linux, with VM/ESA inside running Linux S/390 under it for about 3 months now. openMosix nicely balances the load across my 5 nodes cluster at home and I get very decent speed.
If IBM truly embraces Linux as just one of the members of the OpenSource family (rather than just Linux alone because it saves them billions in proprietary OS development) than it will not go against Hercules. If it does, then we all know that IBM is not serious about OpenSource and only taking advantage of it without really behaving like a good OpenSource citizen.