7 ms·
"To create a new node, an application performs any of the various ioctl() operations that accept a handle, passing the special reserved handle number of "3". w
by f2f 10y ago
"To create a new node, an application performs any of the various ioctl() operations that accept a handle, passing the special reserved handle number of "3".
what a bunch of jokers :)
- Annatar 10y agoThat's the thing about Linux: they have literally not one, but multiple armies of "programmers", and yet even after 20+ years of an absolutely furious development pace, basic things like inter-process communication still do not work desirably. Startup/shutdown? Yep, you know it already, it's still in flux (SMF in illumos has been humming along for a decade now). Filesystems? Flux. Observability? Flux. libc, what libc, that comes from GNU, flux. libstdc++, yeah we just decided to implement a "version 3 of that", flux. Debugging format? You have to rip out your runtime linker in order to get DWARF 2 support (DWARF 2 has been available for 23 years now), so, flux. Virtualization? Wait, which one of the 56 not-quite-right virtualization solutions do I mean, because Linux people are flapping with that and nobody can get it right? Flux. The illumos kernel has been stable for decades now. Teams of five people here, three people there, four people over there, they roll up their sleeves, look at the issues the customers have had and are actually having now, professional engineers with formal education and insight, and in two years they have a working product which only needs a small fix here or there, and is tenable decades into the future. It goes to show that the number of programmers does not a quality, working product make. For example: it's 2016, and my Linux filesystems in Vertica suddenly go into read-only mode, nobody knows why yet. In 2016! I cannot believe I just typed that, but it's true. I've been running ZFS since 2006 both professionally and privately on Solaris and SmartOS at several large companies and I have never seen it go into read-only mode. The team which designed ZFS was only five people, not an army. Bryan Cantrill summed it up so profoundly when, upon showing SmartOS running Linux applications, he ran /native/bin/dtrace and proclaimed: I have clean water!!!
- chme 10y ago> Flux. And while all that is constantly changing, its still possible to compile very old user space software and run it in on a current kernel.
- majewsky 10y agoWell yeah, most of the libc API is older than Linux.
- ekidd 10y agoThe Linux libc API changed a couple of times in the 1990s (a.out → ELF, libc5 → libc6, etc), but the Linux kernel ABI (what libc uses to talk to the kernel) has been stable since practically the beginning. Linus detests breaking anything that talks to the kernel and considers it massively unprofessional, to the point that even a terrible API will be set in stone if anything uses it.
- IshKebab 10y agoYeah but is it possible to run very old binaries on a current kernel? Unlikely. What about binaries compiled on a newer system than your own? Even less likely.
- Annatar 10y agoWhat about drivers? On SunOS, I can install a driver built on SunOS 5.5.1 (Solaris 2.5.1) on the latest illumos or Solaris-based OS, without recompilation, thanks to the device driver interface / device driver kit ("DDI / DDK"). Solaris 2.5.1 came out in 1993; illumos came out, well, today (multiple commits every day). Is the same possible on GNU/Linux?
- vidarh 10y agoIt will always be in flux because it reflects what Illumos doesn't have: A userbase as diverse and large as Linux, of which a large proportion have competing needs and wishes and the ability to change it at will. This is not just about license either, but about the availability of people who understand the kernel. I'm sure we could have something cleaner with a single, coherent team. But we also would have something that'd be useful to far fewer people. Linux wins not by being best at everything. It has plenty of ugly warts. It wins by being accessible ranging from e.g. my ability to just take a job 20 years ago to port it to a custom x86 board with no bios or hard drive, because everything I needed was easily available, to the ability to hire any of a "an army" of past or current kernel developers to help solve my problems or do my custom development, to the ability for people to just write "yet another filesystem" and have actual real people try to use it and give feedback and contribute code. The most important part of the success and value of Linux is that community. Without the community, it'd have little to offer over any number of other kernels that are better in some areas, worse in others. But with it, it stands head and shoulder above all kinds of technically very impressive solutions because I can do things with and to Linux that I can't do, or can't do cheaply enough or in short enough time, with alternatives (and yes, that can be because of lack of knowledge of alternatives, but that too is part of the community/network effect). Don't underestimate the importance of people. > The team which designed ZFS was only five people, not an army. And that's great. But the whole ZFS saga is also an illustration of how licensing early on can hamper adoption (KDE vs Gnome is another good illustration of how important license is; and how lasting the effect can be even after the licensing issues are sorted)
- Annatar 10y agoto the ability to hire any of a "an army" of past or current kernel developers to help solve my problems or do my custom development Aha, you mean like redhat and IBM did, where there are now "kernel developers" who can't find their way out of a wet paper bag, and spend more time arguing with paying customers back-and-forth in redhat's bug system, because they don't have a clue where the problem is? When you have some spare time, please do peruse https://bugzilla.redhat.com/index.cgi https://bugzilla.redhat.com/index.cgi, in order to have a look at what your presumption looks like in the real world... to the ability for people to just write "yet another filesystem" ...Because we need more beta filesystems instead of not having to worry about data integrity, right? And because it's just too much fun to be solving the same problem over and over and over again, but never quite get it right? So that for example, on Linux, we can have things like these: /var/log/messages.1:2267:(redacted) kernel: VxVM vxio V-5-0-1266 Subdisk disk_42f7-01 block 108279824: Uncorrectable write error /var/log/messages.1:2270:(redacted) kernel: lost page write due to I/O error on VxVM14000 /var/log/messages.1:2411:(redacted) kernel: VxVM vxio V-5-0-1266 Subdisk disk_42f8-01 block 108003336: Uncorrectable write error ...which ext3, which was on this Veritas disk group, wasn't able to recover, let alone detect. In the 21st century. Because community. I last saw a problem like this on Solaris ten years ago, since it has been a solved problem since 2006 there. Bryan is correct, I do have clean water, and even modern medical care facilities! The most important part of the success and value of Linux is that community. Without the community, it'd have little to offer over any number of other kernels that are better in some areas, worse in others. The two of us (both with several decades of UNIX system administration experience under our belt) just wasted one hour trying to get a simple NFS share to work on RHEL 6.5, and it still doesn't work, with mount(2) returning "incorrect mount option" without saying which; and that was with us carefully following both redhat's official documentation and many examples on the InterNet. Because, you know, man. Like, Linux! And stuff. I have zero interest in how much of a community Linux has (99.99% of them are former Microsoft(R) Windows(R) users, with the corresponding mentality to match). When I use a computer, I use it to get work done. All I wanted to do in the aforementioned NFS fiasco is to test my code, so I could get work done. On Solaris / illumos, all I do is zfs set sharenfs=on pool/filesystem and then I access that on any client, without even worrying about mounting it, like so: ls -l /net/nfs_server/filesystem without caring if it's NFS 2, NFS 3, or NFS 4 (like I have to on Linux, whose implementation of NFS is so dumb that it actually offloads that on to the system administrator to worry about)[1][2]. I could have had my tests long done and the code deployed by now. I could have had work done if it weren't for that same community not having a freaking clue how to make things JustWork(SM), and if it weren't for the "because, like, you know, man. Linux!" [1] https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s2-nfs-methodology-portmap.html https://access.redhat.com/documentation/en-US/Red_Hat_Enterp... [2] https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-nfs.html#s2-nfs-how-daemons https://access.redhat.com/documentation/en-US/Red_Hat_Enterp...
- jamespo 10y agoZFS/SMF/zones etc are due to the engineering excellence at Sun though, I'd be interested to know of the innovation/improvements since Oracle slammed the door on OpenSolaris.
- RantyDave 10y agoYou can now start a zone that's compatible with 64-bit Linux, or one that runs a "hardware" hypervisor, or mix and match the two. That sort of thing?
- jamespo 10y agoYes, that's interesting. Not on a par with the DTrace or ZFS projects but an incremental improvement all the same.
- Annatar 10y agoNot only is it on par, it's revolutionary. I'm referring to imgadm(1M) and vmadm(1M) in particular. The guys didn't have to get out of Oracle to reinvent the wheel: the engineering they did is sound and tenable enough for decades into the future, so they built upon it.
- qwertyuiop924 10y agoWell, you're feeling nice and smug, as usual. And after vomiting upon seeing this, I don't blame you. OTOH, some of the above you mentioned isn't bad. Linux's "just a kernel" philosophy can be useful, and allows people to experiment with new inits (s6, runit, &c) and new systems that come in handy. And go see Brendan Gregg's talk on Linux tracers. It's not as simple is dtrace, given the tracing war hasn't been won, but it's at a place where you CAN do most of the things dtrace does.
- Annatar 10y agoWell, you're feeling nice and smug, as usual. Yes I am, because I picked a highly reliable, stable substrate to build my own private infrastructure on.
- qwertyuiop924 10y agoYeah, not arguing that, but you also have some really weird, misguided ideas. Like your understanding of bytecode. I think you just have a natural propensity for being smug. As for using Linux, I'm not dropping Linux until LX-branded zones can run Steam, and my game library. And I don't see that happening for a while yet. It may not be ideal for infrastucture, but if you want a UNIX on your desk, for all its flaws, Linux is pretty hard to beat.
- Annatar 10y agoI think you just have a natural propensity for being smug. I chuckled when I read that, and I want you to know that I appreciated it. but if you want a UNIX on your desk, for all its flaws, Linux is pretty hard to beat. I have Mac OS X for UNIX on the desktop. Works like a charm, and never gets in the way of what I'm trying to do.
- qwertyuiop924 10y agoThat's fine for you. Mac has traditionally been a very good option. However, I hear Apple's been making it difficult in the lastest updates. For me, anyways, it's academic, as I can't afford apple hardware.
- hawski 10y agoYou are probably right. But it sounds in very similar way to the Year of Linux Desktop in contrast to Windows Desktop or Linux Gaming in contrast to Windows Gaming. "Linux is all the better! But we don't have all the drivers, because of those pesky hardware companies. But we don't have all the software, because of those pesky software companies. But we don't have all the preinstalls, because of those pesky OEMs." It might be better, but you can't strike out network effects. Because then you just end up with another rant why your thing is superior to that other thing everyone is using. I am wondering if good old things are not just predestined to be unpopular. Probably only new things can get popular (even if they are just miserable copies of great old ideas). Next generation is more inclined to pick up something from the news than from history books. Next generation has their new lingo, so they will not understand easily old lingo. Next generation is cheaper to employ than older generation, so it's easier to get more in terms of quantity. Most (young?) people want everything, even if mediocre, now, than having few perfect things now, few perfect things later. The world belongs to the youth.
- tomegun 10y agoHehe, that was the only part of this article I didn't particularly love. This is how it works: A handle ID is a 64bit integer. If lowest bit (BUS1_NODE_FLAG_MANAGED) is set it is a handle ID allocated by the kernel (the only mode currently supported). If the second lowest bit (BUS1_NODE_FLAG_ALLOCATE) is set a new handle should be allocated by the kernel, otherwise the handle ID must refer to an existing handle.