Slashdot Log In
AT&T's Korn Shell Source Code Released
Posted by
Hemos
on Sat Mar 04, 2000 02:38 PM
from the let-it-be-free dept.
from the let-it-be-free dept.
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. "
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. "
This discussion has been archived.
No new comments can be posted.
AT&T's Korn Shell Source Code Released
|
Log In/Create an Account
| Top
| 148 comments
(Spill at 50!) | Index Only
| Search Discussion
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
(1)
|
2
(1)
|
2

not microsoft nmake (Score:3)
Re:MODERATE THIS UP (Score:3)
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.
Ahhh... the Korn Shell... but is it too late? (Score:3)
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?
Source for original unix (Score:3)
Walt
Walt
More information about ksh opensource (Score:3)
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-wh
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
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.
Re:Ahhh... the Korn Shell... but is it too late? (Score:4)
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.
Re:In other news (Score:4)
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.
Bourne Again Korn Shell? (Score:4)
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)
Open Source license (Score:5)
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
But not DFSG free? (Score:5)
- 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).In other news (Score:5)