Bringing xMach To Life
jmallett writes: "xMach, the microkernel BSD Operating System, first made an announcement on Daily DaemonNews stating that there were some new source and binary snapshots available. Also, OsOpinion has an article I wrote about my experiences so far, entitled 'Giving Birth to xMach'. Development of xMach currently is limited to the microkernel and its servers, but a userland (based on that from the good people at OpenBSD) will be worked on shortly. Some of the primary focuses on xMach are data storage, security, and non-bloat."
BeOS has an IP stack in-kernel. That ain't no micokernel, Jack.
The fact is that BeOS was "forced" onto Intel hardware because they weren't willing to suck it in and use the information that was already out there in the form of MkLinux
Oh BS. Hmm, I wonder which platform has a bigger market for alternative Operating Systems, PPC or x86? That's a real noodle-scratcher.
You know that commercial software vendors have got to be feeling like they are in a precarious position when 16 year-old highschool dropouts can successfully write their own Unix microkernel based operating system.
Seriously, the programming team for this xMach thing consists of some punk kid and 5 or 6 other people (none of which stuck the project out to the end). That is insane (in a good way). Honestly, if uneducated volunteers can accomplish a feat like that and give the results away then you almost have to feel sorry for those people in the business of creating proprietary operating systems. Basically they are screwed.
Congratulations to the hackers working on xMach.
The WHOLE POINT of a microkernel based architechure is to have this layer. It's another thing that can break, yes, BUT unlike the rest of the 'kernel' it is small, and it has very very limited goals in life. (things like schedule tasks, map memory, provide some ipc primitives, etc....) Small means debugable. Small means TESTABLE. Like formal qualification tests. Regression test suites. You can beat the hell out of a microkernel. Then you have known stable base to build your OS services from.
Look at QNX as a real example. (not to say it's perfect, however, it works quite well. You can pull hardware drivers in and out on the fly.)
Enough of this. I need to do some work here
"There's no secret. You just press the accelerator to the floor and keep turning left." -- Bill Vukovich
Unless I am mistaken this project revives a project that I've actually used. BSD lites is a single server (as opposed to HURD which is a multiserver model) on top of the Utah Mach4 microkernel. The Mach4 microkernel from Utah itself is not significantly different from the CMU Mach3 except for a new build system (using GNU make) and lots of Linux drivers. I am glad the project is coming to life. I used it a long time back (1996-97) as part of my Master's Thesis. At that time I was running Lites on top of a NetBSD user land. I was also able to get it running on top of a FreeBSD user land. Unfortunately the web site doesn't seem to have too much technical content (yet).
Any Idea if they intend to use this streamlined BSD for any type of handhelds or Internet appliances?
And if so, how would they make it work?
You say you want a revolution....
wow, "non-bloat" as a goal. Everyone should jump in and help to add their favorite features!
At least that's what I've seen happen to all other projects with non-bloat as an original goal. (linux, mozilla, kde, gnome, etc..)
It's basically Mach 4 (from Utah) with a BSD
kernel hacked to run as a server, the latter is
taken from lites.
I'm interested in hearing more about the issued you had porting Streamripper to BeOS. The link to the BeOS binary from BeBits seems to be broken. I'll cvs it and take a look at it tonight. Any major brokes, besides the panics while debugging?
, but the GUI was beyond me. all of the same code i could find wouldn't even compile. Also i got constant kernel panics when debugging threads. real shame...
Well, Be's native gui is unique. In other words: BeAPI != win32API != gtk/qt/motif/whatever. The BeBook is available online, if anyone's interested in the API. Programming for BeOS is a great way to learn C++, IMHO.
It does not mean that BeOS is broken. Sheesh. Software evolves, paper decomposes. Fortunately, there *is* current documentation available.
Try the current version of the BeBook (available online), or join #bedev on irc.elric.net :-)
Uhmm.. it sort-of is. Check out darwinos.org, or read Apple's FAQ.
"Darwin is processor-independent and is built for PowerPC and Intel platforms, enabling Open Source developers to work on Darwin projects on the widest choice of computer systems."
hey -- heres a wake up call for you. no one is going to help you if your projects are neither interesting nor useful. you should write the software you write because YOU want to write it not because open source is a good idea or you want people to help you. ive always started my projects with no help and it usually takes between 4 months to a year before anyone helps out. on the other hand ive had three "one person" projects where people have helped out even though i didnt expect them to...some for a loong time (over a year) and even have taken over some of my projects when i lost interest. there is NO NEED for world class software. if it works for YOU thats all thats important -- after all thats what you wrote it for right ? do NOT write open source software if you want "recognition" or to push the "open source" philisophy or any of that utter crap. write it if YOU want to see it work. and dont expect anything other than the fact youre software does what you wanted it to do.
exactly. a need for who ? im quite happy with my linux box the way it is and if i need something else i write it. where is the need for "world class" software and who wants it ?
lets face it -- most people are happy with a web browser and an office (wordprocessor, spreadsheet,email) package. both of which and more can be provided by any OS. programmers need dev tools - well, gcc is pretty "world class". servers need web browsers/dns/smtp all of which are filled by "world class" open source tools.
now what other "world class" software were you talking about ?
BeOS has an IP stack in-kernel.
>>>>>
Not yet.
That ain't no micokernel.
>>>>>>>>>
That might sully its definition as a "true" microkernel, but I'd argue that BeOS is more of a microkernel OS where it counts than any other Mach-based OS, except maybe HURD. First, many microkernel OSs have networking integrated, I believe QNX4 had it in the kernel. Second, Most Mach based OSs use a monolithic system server, which throws many of the benifets of a microkernel OS out the window. In BeOS, for example, if the net_server crashes, it can be restarted without too much trouble. If networking in the BSD system server crashes, then the OS is down the tube anyway.
A deep unwavering belief is a sure sign you're missing something...
A) BeOS doesn't yet have networking in the kernel. Even with BONE, its microkernel-nature isn't effected too much since microkernels that do networking in userspace (such us QNX4 which, contrary to my previous post, does indeed do networking in userspace) use highly-optimized shared-memory paths to communicate with the kernel. These paths are much easier to corrupt and thus cause crashes than normal messaging interfaces. Besides, BeOS (and arguably NT) is more of a microkernel than NeXT, OSX, or whatever. Mach or not, they use a single system server, which gets rid of a lot of the benifets of the microkernel design. As for USB devices, how does that make it not a microkernel? Its a bus just like the ATA or PCI busses, and I have yet to see anybody propose to do PCI outside the kernel.
A deep unwavering belief is a sure sign you're missing something...
I don't know about you, but (aside from when I was writing a kernel driver) Linux (X actually, but since I use the GUI, its all the same) has crashed on me more often than BeOS. Not to mention that it hosed ext2 twice... BeOS is probably a little less stable than Linux, but I only reboot my machine once every few weeks and neither OS crashes on me. As I said, net_server is pretty unstable, but that's why its being replaced.
A deep unwavering belief is a sure sign you're missing something...
I can think of lots of reasons not to contribute to hurd.
1) it IS a fundamentally different thing from this.
2) It's design is insane... Not in that it's not a good idea, just that it's very diffacult to grok the interactions correctly.
3)I don't like RMS, he's funny looking.
Old truckers never die, they just get a new peterbilt
Linux was around before the commercial distros. If there is a need for an alternative OS to MSFT, Linux will have a future.
"Rocky Rococo, at your cervix!"
If you really believed this, why did you release your project as open source?
GNU/Hurd is not an "open source" venture as I understand RMS to define it.
"Rocky Rococo, at your cervix!"
certainly not! the best hoovers by far are those on the Roland Alpha Juno 2.
- j
Am I missing something here, or is Darwin already what xMach is trying to be? Darwin may not be ported to x86 yet, but it is the foundation for a comercial product and as such has seen a great deal of development. And if the goal was to create a free implementation of OPENSTEP why not work on porting GNUStep to Darwin?
A properly secured linux box won't be "script-kiddied". And to be honest, considering the fact that you'll only be pushing 128Kbit/sec MAX, a BSD server could be considered overkill. You just need something to pass a little data...you're workstation could easily handle such a load in the background. OTOH, if you haven't played with *BSD yet, I say go for it. Any learning experiance is worth having.
-- mikeDOTd
W2k is not based on mach, and the rumours that its stability lessened significantly when win32 and others were allowed to run in kernel mode are unfounded when considered more carefully.
Give the book "Inside Windows 2000" a read sometime.. but basically, i'll paraphrase
"Is Windows 2000 Less Stable with Win32 USER and GDI in Kernel Mode ?
...the reason the impact on system stability has been minimal is that prior to windows NT 4 (and this si still true today), a bug (such as an access violation) in the usermode Win32 subsystem process (csrss.exe) resulted in a system crash. This crash occures because the parent process of Csrss (the session manager, smss) does a wait operation on the process handle to csrss, and if the wait ever returns, smss crashes the system, because the win32 subsystem process was (and still is) a vital process to the running of the system....
there is one additional danger that did not exist prior to moving the windowing and graphics system into kernel mode.. because this body of code is now running in kernel mode, a bug (such as the use of a bad pointer) could result in corrupting kernel mode protected data structures..prior to nt4 such references would ahve caused an access violation because kernel mode pages aren't writable from user mode, but a system crash would ahve then resulted, as described earlier.. with the code now in kernel mode, a bad pointer ref that caused a write op to some kernel mode page might not immediately cause a crash, but if it corrupted some data, a crash would likely result soon after..
.. another area of impact can come from moving the graphics drivers into kernel mode.. previously some portions ran in csrss, and others in kernel mode.. now the entire driver runs in kernel mode..
... finally, running the windowing system and graphics drivers in kernel mode is not _fundamentally_ risky... many other device drivers (network cards, hard disk drives) have always run in kernel mode on every version of NT, with a high degree of reliability.."
his little analysis goes on an on.. talking about the scheduling impact on smp and non-SMP boxes about these moves, and many other cool issues..incase you cant tell i think anyone that uses w2k at all should have this book.. its pretty sweet (and comes with a cd full of neat make-NT-stink-less tools like a self-hosted kernel debugger, etc..)
its "Inside Microsoft Windows 2000", by Davide Solomon and Mark Russinovich...
My opinions are my own, and do not necessarily represent those of my employer.
I'm thinking FreeBSD because it's less likely to get script kiddied.
If that is your only concern go with OpenBSD, As for FreeBSD or Linux.. doesn't matter. they'll both hold up just fine.
Go with FreeBSD is you want a sane install, meaning the ports collection, nothing weird of out of place.
Go with Linux if you want to install lots (and lots) of different stuff, play with new things, runa CS or q3 server, etc... It's not that these can't be done in FreeBSD, but if somethings not in the ports collection it can be a serious pain to get running.
-Jon
Streamripper
this is my sig.
Streamripper
this is my sig.
Mach=another layer before the hardware.. so if something heads south in the kernal (as you know it) it would mean that it's father (to speak) would just restart it.. or at least fail gracfully. OS's that use a mach design would be..
WinNT/2k
BeOS
OSX/NeXT
Hurd(aka vaper)
Win2k IMO is the best out of these. and it's not a true mach design.. they started off doing that, and since then have punched holes in it to make graphics and multimedia faster.. damm shame because thats where about 95% of the crashes come from.
BeOS is pretty good. but i'm starting to belive it's abadonware; about 2 months ago i tried porting my streamripper program to it. the posix end of it worked out fine, but the GUI was beyond me. all of the same code i could find wouldn't even compile. Also i got constant kernal panics when debugging threads. real shame...
OSX/NeXT: dono haven't played with it.. don't know much really.. i have a feeling that they are keeping it 100% microkernel design.. which will be nice, if they don't have any bugs in the core.. it'll also mean the multimeda stuff will lag, but maybe not to bad, anyone know anything solid so i can stop talking out of my ass?
Hurd(aka vaper): ya... opensource solves everything.. yeah..... sure...if you actually release something within a decade, maybe...
-Jon
Streamripper
this is my sig.
"Non-Bloat"? "Non-Bloat" is now a concept? It's like an enhancement, a feature, like white wall tyres?
Anybody ever remember qualified programming?
radsoft.net
set yourself up as a tin-pot dictator of your own website -- then you can decide what stories get posted.
Or just go to Kuro5hin, where the community chooses the stories.
Will I retire or break 10K?
That's only true of the 2.2 Linux kernel. Read up on the question Hans Reiser, of reiserfs fame, asked the linux-kernel list regarding performance diffs between BSD and linux. The answers were informative. The people that answered know their shit.
See:
http://kt.zork.net/kernel-traffic/latest.html#2
no link cuz I'm truly sick of phony ones.
I seriously think some people here think that Linux would make a better vacuum cleaner than a Hoover branded one!
I'm not so sure -- it seems like a legit question. It wouldn't be modded down if it asked "Should I use Linux instead of Windows for a NAT server"
amazing how these open source places keep churning out software to publish when no one wants to work on them and they're not 'commercially viable' according to certain software companies.
DanH
Cav Pilot's Reference Page
Cav Pilot's Reference Page
UNIX - Not just for Vestal Virgins anymore
Look at netcraft.com's statistics. xBSD just about owns the entire 'max uptime' and 'number of servers' catagories.
Apparently someone likes xBSD enough to use it as their servers.
I, personally, prefer linux as I'm used to that. Solaris would be my second choice.
DanH
Cav Pilot's Reference Page
Cav Pilot's Reference Page
UNIX - Not just for Vestal Virgins anymore
If it's 'too easy to crack' then look at OpenBSD. Out of the box security supposedly and it's a BSD, what's not to like?
Solaris x86 IS a dog, that's true, but for web serving, SPARCStation2 is fine up to a point. Cheap too.
DanH
Cav Pilot's Reference Page
Cav Pilot's Reference Page
UNIX - Not just for Vestal Virgins anymore
I don't think it's the FreeBSD community, per se, but rather the newsgroup community in general. Just think about all of the BW that is wasted when NG-lurkers with big heads critique every word in your post before telling you to Read the FAQ/Manual/Earlier posts. Just spend a day reading comp.lang.perl.misc and you'll get my point.
--
Wooden armaments to battle your imaginary foes!
I think you want OpenBSD. If you want security, OpenBSD has security on the order of a booby-trapped bank vault guarded by snipers. FreeBSD is a good server system in general (just ask Yahoo) but if you want bulletproof use OpenBSD; everything has been source-audited to death.
/Brian
There are basically two reasons I can see for xMach to even exist:
-Lites is Not Ready for Prime Time (which I have no knowledge of), or
-someone wants to see a GPL'ed BSD.
I don't know if either situation applies; xMach as it stands is BSD licensed, so the second possibility is currently out. Apart from that, why do we need a fifth BSD to begin with except to satisfy someone's hacker itch?
The thing is, Yet Another Microkernel BSD is not what we need. We already have Lites. We already have Darwin. If you're going to create a Mach-based OS, why not do something non-Unixy? Why not do a freeware clone of Solaris or some other Unix with a lot of specialized features?
That said, I may offer to help out anyway, I don't know...
/Brian
Wow. Can you moderate someone down -3/4 for being 3/4 of a troll?
Last time I checked, the OS of choice for Mach is pretty much any Unix you care to port to it; the most important of these would be OSF/1 (aka Compaq Tru64) and MacOS X/NextStep (there may be others). The Hurd fits loosely into that category as it's meant to be more or less a Unix act-alike, though its architecture is drastically different from any Unix or Linux system available.
(IMHO the Hurd is obsolete except as a teaching tool anyway -- the world marched on without it while it was still vapor. But that's my personal bit of flamebait and I invite others to disagree.)
/Brian
I've seen this before... does someone have an autopost script that pops this up on every BSD article or something? (And a Linux version now...)
/Brian
(ps To those not really in the know, it's a crock anyway -- I'm not going to get into it, but someone is clearly missing the point...)
Hurd is overkill for most projects, and its long delay in seeing the light of day stands as a monument to cathedral hubris. And it's not developed from scratch anyway -- it shares the Mach kernel with a number of other OSes. The only thing really innovative about it is the multiserver design and the architectural intricacies that follow from it. The Hurd is basically a huge toy for the OS geek, and will not gain the kind of momentum that Linux and BSD have.
And yes, you BSD-is-dead, people, BSD has massive momentum. Just ask Apple, and Compaq, and Yahoo, and...
/Brian
Failure schmailure. BSD has been going for over twenty years now -- that's got to be some kind of Open Source record.
/Brian
It was a troll because it was quite evidently an attempt to start an extremely off-topic operating system religion flamewar. Despite being modded down (apparently, it didn't get modded down quickly enough), the troll succeeded. All these posts (including mine) are off-topic, and should be modded down.
Just my experience...
I have been using Red Hat Linux for a couple years now for my firewall/router and my servers. I have yet to be script-kiddie'd and the firewall is controlling a modem link AND a DSL link just fine and it's only a low end pentium machine.
Linux can be set up very securely and will cope with the load extremely well IMHO.
I would much rather use Linux and spend time learning about security than install something "secure out of the box" and not be aware of the issues.
You forgot Minix vs. Linux. This kind of _evolution_ is VERY productive. No, I will not write for HURD. Why? Because it's completely different ideas, a completely different goal, etc. And also, I don't necessarily feel very pro-GNU 99% of the time. In fact, most of the time, I don't like the GNU project very much. By the way: HURD didn't have to exist either. rtmach was doing basically what xMach is intended to do, before HURD. In fact, if Bushnell et al. had just contributed to Mach4 @ Utah, or Lites from jvh, we'd just have Mach4 + Lites. Or better still, Mach MK83a + UX, and lots of encumbered code. Yeah, diversity is bad. Let's kill _every_ Linux distribution too. It's not like they could have individual markets, users, ideals, goals, etc., If it's similar, it should be consolidated. We should have 'World Auto' instead of 'Ford, Toyota, Honda' etc. Maybe if I had called it 'GNU/xMach' you wouldn't have minded so much?
--
It wouldn't be modded down if it asked "Should I use Linux instead of Windows for a NAT server"
It should be... And since that isn't what was asked, how the Hell do you know if it would or wouldn't have been modded down?
Ranessin
Basically its a dog, its a pity it had to be the most famous.
Its a shame something like L4 doesnt get more publicity. Or Eros for that matter, although that wont ever be suited as just a lite weight server to build a *nix on.
The HURD is developed from scratch, a pure design, a working microkernel with an up-and-coming Debian distribution, and officially supported by the GNU project.
xMach appears to fall short of the HURD in each of these areas, if I'm not mistaken: it's not developed from scratch, has a more mingled design with existing BSDs, in partially-working state and is not part of a funded project.
Not to disparage the xMach team, but as an honest question, how is this use of resources better than simply contributing to the HURD? Is it simply ego?
That brings up another point. How often do free software projects suffer from ego? Not the make-things-better-because I'm good ego, but rather splitting projects, wasting time on personal conflicts, etc. NetBSD vs. OpenBSD, GNU Emacs vs. XEmacs, KDE vs. GNOME, and now xMach vs. HURD; do these competing forks serve a productive purpose in the free software community, or are they simply reminders of the inherit inefficiency prevalent in any organized human endeavour?
Just some thoughts... thanks.
While the xMach kernel has a BSD license, it is not a BSD Unix OS. It is a kernel. Ideally this kernel could be used inside any OS; in a way, it is already - there are daemons for linux similar to mach or hurd.
While a unix would be easier to do for the mach kernel than, say, make windows run on it, the OS of choice for mach is the GNU hurd.
Some would consider darwin to be the reverse-engineering of a dead operating system, while mach is supposed to be a well-thought-thru design.
In addition, the apple open license 244C2.
See also: http://www.debian.org/ports/hurd/
I'm still trying to figure out what people mean by 'social skills' here.
What do you feel comfortable with? FreeBSD is my personal preference, but you have to be very aware of the huge cultural difference between Linux and FreeBSD communities. Within the FreeBSD community, it is extermely necessary to RTFM completely before you step forward and ask a presumably stupid (all newbies are presumed stupid until proven smart) question on the mailing list. Clueless lusers are not very welcome. (I'm just stating what I see as the attitude on the various FreeBSD mailing lists.)
That said, the technical qualities of FreeBSD make it outperform Linux in all cases. Linux suffers from the disease of the least common denominator--i.e., they let anyone hack away and contribute poor quality software to the effort. With FreeBSD, there is a lot of attention to doing things the right way, where the right way is defined by the people on the committers list.
So, if you think that you can install and start up the system on your own, go for FreeBSD. If you need help from the get-go, better stick with Linux. After you get the system up and running, and you have thoroughly R'd TFM, and you have spent at least 2 weeks reading freebsd-stable mailing list, then ask for help.
I'm curious how xMach compares to Mach 3.0 from CMU. Is there any relation at all besides sharing a microkernel architecture and the word "Mach?" Does anyone have a summary of the interesting features of xMach? Is this doomed to be yet another operating system?
--Sam
It was marked "troll" because the FreeBSD philosophy is to make a high-performance x86 server, and it probably is the highest performance server you can set up on an x86 box.
Whether the poster knew this or not is another question altogeather.
Trolls throughout history:
Trolls throughout history:
Jonathan Swift
Here's what I know. A coworker of mine used Linux to set up his PacBell DSL line while I used FreeBSD for mine. His was recently hacked by some sort of script that gave the kiddie super user privleges. The worst I have seen on my box is people attempting to access my SAMBA share (unsuccessfully I might add). In my case I got rid of them by configuring the firewall to disallow those ports on the Internet.
My machine runs NATd, DHCPd, SAMBA, APACHE, IPFIREWALL, VNC, SSHd (preinstalled!!!), FTPd so on and so forth.
His runs telnetd and FTPd.
What's my opinion? Either box could end up secure, but mine was secured with most of the services I need right out of the box. In my opinion this saves me from potential user error while installing this software. On top of that, I have yet to hose a BSD machine whereas Linux machines were always falling apart at the seams. I guess what I am trying to say is, how many Solaris/HP-UX/BSD machines that you have heard of get reinstalled every 2 months, or even at all? I know of another OS that does that. It starts with a Win and ends with a Dows.
Yeah, yeah, yeah. Flame on, I don't care.
Javascript + Nintendo DSi = DSiCade
I'm wondering how closely related to Mac OS X this is.
/* oops I accidentally made a comment, sorry */
Ceci n'est pas un sig
I got question for all you knowledgeable FreeBSD folk.
Would FreeBSD make a better DSL web server than Linux?
My situation: I just got DSL, and it rocks. I only have 10 megs of homepage space with my ISP, and I want more. I figure I could jsut set up a web server at home, and live with the 128k upload speed (I need something to bypass my corp. filter, and a little cgi-perl should do the trick).
So, Linux or FreeBSD for the server? I'm thinking FreeBSD because it's less likely to get script kiddied.
What do you all think?
so I don't want to be saddled with Slolaris.
Now, if I took an extra Sparc home, it would be different.
I figure Linux is too easy to crack, see the honeypot article.
...FOX Broadcasting has just filed in court an injunction again xMach for infringing on their trademark "X-Files" TV show. When asked to comment, the lawyers for FOX said, "we think that popcorn manufacturers need to learn that they can't name their kernels after TV shows and not expect legal action."
Come on.. It could happen.