Paul G. Allen wrote:
On Mon, 2007-06-11 at 15:07 -0700, Darren New wrote:

It has a universal component model, leading to a variety of universal scripting languages.

Linux has many scripting languages available to it that are older than
Windows is.

So does Windows.  That wasn't the question.

What universal component model will let me write a script that runs vi edits over an open-office spreadsheet whose data is automatically pulled out of a database? :-) What's the common scripting language I can use to drive open office, emacs, and the Gimp all at once?

IBM (and Amiga) had REXX. Windows has WSH. If there's something like that on Linux, I'd love to hear what it is.

It has a more powerful file system as well as a more powerful permissions system.

Maybe in the past, but certainly not today. There's a long list of file
systems for Linux as well as ACL support....

Er, as far as I know, for example, Linux still only has an owner integer and a group integer on a file. This means that if you have a file on removable media (like a USB drive), and you plug it into a different machine, you may suddenly find it has different owners. If there's a way to have (say) a small home network where this sort of thing works, where I can move my backup disk from machine to machine, other than simply making sure all the user names map to the same ID numbers on all the machines, I'd like to hear how to work it.

It also lacks multiple streams on a file, altho I believe there's a limited name/value capability, as long as you don't want support from the rest of the OS (like, say, the copy command, I/O redirection, etc.)

It also lacks, as far as I know, the ability to delete the beginning of a file, altho that one I'm not sure about. Does it still work to write all zeros over the beginning of a file to deallocate those blocks? Last I checked, it only worked if you seek() past an area of the file and never wrote to it.

I also don't know anything that lets me (for example) query for the list of files that were deleted or had their permissions changed since the last time I ran this program without scanning the entire disk drive. There's no way to tell if a file was renamed, or if the file was simply deleted and replaced with another file that takes the same i-node. Indeed, as far as I can see, the interface for detecting files changing when you *are* running is barely usable for showing explorer-style windows updating in a GUI.

And, as far as I could tell, there's no convenient way to (for example) copy files over the network while retaining the ACLs, or back up and restore files while retaining stuff like the bits that say "Mary is allowed to append to the file, Joe and Sue are allowed to read but not write, Frank is allowed to write but not read, and Fred is allowed to back it up but not allowed to read it."

AFAIK, Linux also doesn't have something like BITS standard. I don't know how you configure Linux to download something slowly and only when the network stack isn't handling other traffic, and how to have it do that only when your connected, and have it launch your program on the result when it's finished downloading. Sure, you can write it, but it isn't ubiquitous as something like cron is, and that makes a big practical difference.

I'm not sure how you configure something in Linux so that it doesn't slow down other processes with disk access. I.e., I don't know the equivalent of "nice" for disk access. Can you tell me which FM to R?

Linux also seems to lack an EFS that can encrypt individual files in a directory, or have different files in a directory encrypted by different people. This is something I'd really like to have on my laptop, altho granted it's somewhat less of a problem with Linux, since things tend not to spray files randomly all over the file system, so mounting your home directory and /tmp and /usr/tmp and ... as encrypted partitions probably works fairly well.

It also lacks the ability to clean up temp files when your program crashes or when you log out. Granted, Windows doesn't either AFAIK, but I've worked on systems where this sort of thing was standard and it always bugged me that nobody in the small-computer OS biz ever got that right.

The features of the file system and permission system are actually well-integrated into the tools.

This is the "backup" part, see. I haven't found any program that will back up files with ACLs and the other magic "append only" type bits intact.

>> It has
transactional features built in, so you can say "I need to write these three files, add those three tags to the middle of that XML file, and put three records in the SQL database over there, and I don't want anyone to see any of the changes before they're all committed, and I want them to all roll back if I dump core in the middle."

....including journaling file systems.

What's the system call that lets me create and fill three files and not let anyone see the first one in the directory before the third one is created and closed? What's the call that lets an aborted transaction in a database delete the three files? What's the call that makes those three files disappear (and indeed never show up) when my program core dumps while writing the third file? I'd really like to know, because I've looked for this functionality and I was unable to find it.

What is Linux lacking again? But now we digress.

I think you're putting your hands over your ears. Just saying "Journaling file system" doesn't do what I described. If it did, there wouldn't be any need for programs to write new versions to a .tmp file and then rename them over top of the old version, just to keep from corrupting the file if they crashed in the middle.

Pointers to any of these functionalities would be appreciated. The name of the function, or the option to ioctl, or the name of the package, or even what Linux calls the equivalent functionality (I'll grant you that "USN" isn't a particularly obvious acronym) would be helpful. Thanks!

--
  Darren New / San Diego, CA, USA (PST)
    His kernel fu is strong.
    He studied at the Shao Linux Temple.

--
[email protected]
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to