Slashdot Mirror


AT&T's Korn Shell Source Code Released

Henk Langeveld writes, "This announcement can be found at kornshell.com: March 1, 2000: I am happy to annouce the the 'i' point release of ksh93 is now available for download. For the first time, source is available as well as binaries for several architectures. If you build binaries for new architectures, and send them to us, we can add them to the download site. The download page has been completely revised in a manner that hopefully will be easier to use. ksh93 is part of the ast-open package. tksh (ksh with tk support) is also part of this package. -- David Korn
As a long-term fan I'm glad to see the korn shell now being released under a new license. The license is quite non-standard, and does include some restrictions (changes can only be distributed as patches), but as far as I can see it does allow anyone to bundle binaries with their products. The distribution format is quite non-standard. The research group at AT&T has their own packaging system, built around nmake. "

11 of 148 comments (clear)

  1. not microsoft nmake by Anonymous Coward · · Score: 3

    nmake is not Microsoft nmake, it is the AT&T Bell Labs next-generation make that is way better than standard UNIX make: parallel builds, include file scanning, coshell (instead of fork/exec for every shell command), distributed build support, compiled makefiles, state tracking from one build to the next, etc., etc., etc. When originally developed, it helped cut build times for the AT&T 5ESS switch from 3 days down to 1. http://www.bell-labs.com/project/nmake/

  2. Re:MODERATE THIS UP by logicTrAp · · Score: 3

    ksh is actually quite servicable in the absense of a better one, as long as you apply the right magic to your .shrc or whatnot. To get some decent command line editting do a 'set -o emacs', to get the arrow keys etc to work
    alias __A=`/bin/echo "\020"` # Up
    alias __B=`/bin/echo "\016"` # Down
    alias __C=`/bin/echo "\006"` # Right
    alias __D=`/bin/echo "\002"` # Left
    alias __H=`/bin/echo "\001"` # Home
    alias __p=`/bin/echo "\004"` # Delete
    alias __q=`/bin/echo "\005"` # End
    alias __z=`/bin/echo "\017"` # Clear
    (The previous works on Solaris, it might need some tweaking for different forms of echo) Unfortunately, I don't know of an easy way to get TAB to do filename completion (the default is ESC ESC) Would I rather use ksh than bash? No. But, there are a lot of times when getting ksh to work nicely is easier than getting bash onto the machine in question.

  3. Ahhh... the Korn Shell... but is it too late? by Sun+Tzu · · Score: 3

    Not that I don't like bash, but ksh is what I use at work and what I used for years prior to encountering using Linux for the first time. But perhaps my habits have become restricted to only the functions that the two hold in common. ;)

    I've never really looked closely at the differences between bash and ksh but the question that occurs to me is this: has bash overtaken ksh in functionality to the point that this release is now too late to matter?

    1. Re:Ahhh... the Korn Shell... but is it too late? by costas · · Score: 4

      I am kinda dissappointed noone in this thread has mentioned Zsh.

      Z-Shell is competitive with bash, and IIRC the comp.os.unix.shell FAQ shell comparison it actually has more features than any other shell out there. The new (still unstable version) even has dynamic module loading...

      Plus, it's a (near) drop-in replacement for ksh and can even emulate some csh features for those that like them (search for the cshjunkie* options in the manual :-)


      engineers never lie; we just approximate the truth.

  4. Source for original unix by wnissen · · Score: 3

    This reminds me of the article posted a while ago on the original Unix source code being available. Something like "Open source in history"? Ah , here it is. Anyway, kind of sad that it took this long for one of the best shells to be released. I'm not blaming David Korn, it's a great shell and I'm sure he did what he thought was most responsible for AT&T to do with it. Heck, I'm completely willing to believe that it took this long to convince his bosses that it would be a good idea from a standpoint of actual improvement to the code. I don't see anything on the web site as to why they decided to release , although "free for non-commercial and educational use" is not exactly what I'd call "free source"...

    Walt

    Walt

  5. More information about ksh opensource by dgk · · Score: 3

    I read all the comments related to AT&T's Korn Shell Source Code Released
    posting and decided to provide some additional information that
    should clear up so many misconceptions. I will also try to get a FAQ
    on the kornshell.com site to clarify many other points as well.

    First of all, I would like to thank they authors of bash, pdksh,
    and zsh for their valuable contributions. I have tried to
    provide information on changes to ksh so that these shells
    could add these features in a compatabile way.

    I will respond to some of the comments here:

    1. Too little too late. This may or may not be true, but it
    is irrelevant. At this point, it's too early to make such
    a statement -- the user community will decide. I would have
    prefered to make this OpenSource from the beginning but I did
    not have this option. It has taken a lot of effort to get
    this source released at all. Note that ksh93 is only a
    part of this AT&T open source distribution and that there are
    tools that have no other UNIX/LINUX equivalent.

    2. bash is much better than ksh.
    These comments have no information that would make them
    meaningful without specific examples. What version of ksh
    and what version of bash? I am interested in hearing which
    features of bash are missing from ksh93 (see point #5).

    3. zsh is better than ksh.
    Although zsh has an impressive set of features,
    it is not POSIX compatible making it difficult to write
    portable scripts. I am interested in hearing from zsh
    users what *language features* are missing in ksh93
    (I am aware of most of the interactive enhancements).

    4. tcsh is better than ksh.
    Irrelevant. tcsh is based on csh, which is generally agreed
    not to be a good scriping language. So why compare it?
    See "csh programming considered harmful" by Tom Christiansen
    (http://www.faqs.org/faqs/unix-faq/shell/csh-why not)

    5. There are some features in ksh93i that some users seem to be
    unaware of. Several of these are not in bash, zsh, or pdksh.
    a. File and command name completion (using tab in viraw mode).
    b. Key binding (arrow keys work on most systems by default).
    c. Process substitution, e.g. command1 ( command2 )
    d. Ability to connect to tcp or udp connections using
    /dev/tcp/hostname/portno with redirections.
    e. Complete ANSI-C floating point arithmetic, including
    math functions.
    f. Complete ANSI-C printf formatting with several extensions
    including date/time foratting using %T.
    g. ANSI-C string input using $'...'. (I believe zsh has this).
    h. Associative arrays.
    i. Extended regular expression matching/replacement including
    backreferences for shell variables.
    j. Runtime loading of extensions including builtins.
    There is an API for referencing ksh93 internals.
    k. Active variables. The ability to associate processing
    functions with shell variables (similar to traces in tcl).
    l. Compound objects, useful for implementing data structures.
    m. Reference variables for passing variables by name.
    n. The shell is written as a library that can be reused
    in other commands. For example, dtksh which combines
    ksh93 with X11 and Motif, and tksh which combines
    ksh93 with tcl/tk.

    5. Confusion about the licensing terms.
    The kornshell.com home page hasn't been updated yet so it still
    contains outdated references to commercial and educational
    uses. There is no such distinction. The license does
    allow for commercial distribution of binaries and/or source.
    We do not have OSF certification as of yet, but I do think
    that the license satisfies all of the OpenSource principles.
    The license does not have the GNU GPL restrictions.

    6. nmake is not Microsoft nmake.
    It certainly is not. It is simply the best make program
    that I have every seen. The Makefiles are consice and
    protable. No makefile or dependency generators are needed.
    It can generate both UNIX makefiles and Microsoft nmake
    files for systems that do not have AT&T nmake.

  6. Re:In other news by Greg+Koenig · · Score: 4

    What's really funny is that I've been to USENIX conferences with Dave and he's worn "Korn" T-shirts. I about died the first time I saw him doing this.

    Actually, even more funny was when I was at the USENIX Windows NT symposium a few years ago. The Microsofties were up on stage talking about their Unix toolkit for Windows NT. This includes several common Unix commands (ls, cp, ps, etc.) along with a version of ksh. Dave stood up and went to the microphone and mentioned a few areas of incompatibility with the version of ksh used in the Unix toolkit for Windows NT. The Microsofties, not realizing who they were talking to, kept going back and forth with him, insisting that their version of ksh actually did comply with the AT&T ksh, and sort of implying that Dave (who they still didn't recognize) didn't know what he was talking about. Nearly everybody in the audience was laughing out loud, and eventually somebody let the Microsofties in on who exactly they were talking to.

  7. Bourne Again Korn Shell? by gjt · · Score: 4
    I use bash as my interactive shell.

    But for scripting, I always use ksh (on Solaris). Why? The ksh syntax is a superset of the original Bourne Shell, and therefore pretty much a superset of the Bourne Again Shell.

    bash primarily adds readline support which makes it super-easy to use interactively. readline doesn't do much for non-interactive scripts.

    In the Korn shell, the typeset comand provides a number of extra features for things such as presenting non-decimal numbers, and converting from upper case text to lower case and vice versa.

    Another way cool feature of ksh is `|&` which is a way of getting a pipe to a background process. I guess they call it co-processes, but it really make a client/server process. I guess you can also call it a bi-directional pipe. You can then use `read` and `print` to send and receive stuff from the "server" started with `|&`. For example, if I need to do floating point math, I can start `bc` in the background with `|&`.

    I think what we need is a ksh with readline support added. Bourne Again Korn Shell! (Maybe spell "Bourne" as "Born)

  8. Open Source license by Bruce+Perens · · Score: 5
    We reviewed this on the license-discuss mailing list a long time ago. Everybody in the discussion at that time concluded that it was an Open Source license, although I don't think anyone was as happy with it as they would be with some of our simpler and less restrictive licenses. I doubt that OSI will certify it but that's up to them. They tend to reject most termination clauses.

    I discussed the ksh source release with David Korn a while back, including the point that it was probably too late. He seemed to think that the original still had some features not available in pdksh or elsewhere.

    Thanks

    Bruce

  9. But not DFSG free? by Carl · · Score: 5
    Debian legal doesn't seem to consider this license DFSG free. See the thread starting at http://www.debia n.org/Lists-Archives/debian-legal-0003/msg00009.ht ml. Not all messages are archived yet but the main points are:
    • a "you must monitor our web site" clause
    • a "you are responsible for ensuring that people you distribute the software to comply with this license" clause
    • a "you must contact us if you distribute patches" clause
    • an unilateral-termination clause
    • a "you must adhere to U.S. law" clause
    The 'ensure that others comply' and the 'Termination clause' seem very non-free, the others are only very annoying (especialy if you don't have easy internet access and live outside the US).
  10. In other news by Greyfox · · Score: 5

    AT&T shares fell in early trading after the popular band "Korn" announced a lawsuit for trademark infringement. "It's obvious they're using our name. Who would have thought of spelling corn with a "K" except us?" commented a lawyer for the band. AT&T declined to comment on the suit.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?