I apologize in advance if this has already...
Articles and Tips: qna
01 Oct 2003
Q.
I apologize in advance if this has already been discussed, but I haven't seen it. With the port of "core services" to Linux, will LIBC/CLIB (i.e., the same set of APIs) be made available on Linux so one wouldn't have to manage multiple code bases?
A.
Novell is working as hard as they can to make LibC compatible with UNIX/Linux. This is a goal that will never be completely achieved; however, if you write to POSIX (as much as you can) on NetWare, our goal is that you won't have to change anything to run on Linux. Obviously, if you code to POSIX on Linux, particularly to interfaces like fork/exec, etc., you will have to conditionally compile or otherwise fix up your sources to consume procXe, etc., on NetWare. That is as close to single-source support as Novell will come.
For now, there seems to be little reason to port LibC interfaces to Linux. Perhaps we will port our Unicode library or some other component that Linux lacks. But we're not there yet.
Meanwhile, our effort of the last year and a half to make what POSIX we have more conformant, plus add cool POSIX stuff you need continues. Soon you'll have a new link flag to indicate that your NLM wants the full POSIX semantic set (as full as we have been able to get it).
The biggest improvement we are targeting for this next release of LibC (in NetWare 6.5 SP1, NetWare 6 and 5 CSP10) is in path strings. These will be UNIX-like and you will probably (we're still mulling this over) be using
(SYS:)/etc/pathtab
almost as if it were /etc/fstab to indicate how you want to reference local volumes (other than SYS:) and even remote ones. For example, you can already say
"/apache/conf/httpd.conf"
in your code, but if that file were on volume VOL1 instead of SYS , then you would have to code
"VOL1:/apache/conf/httpd.conf"
That's ugly and not very easy to target in code you want to run indiscriminately on UNIX and NetWare. So, you make an entry (this is still experimental for now) in the /etc/pathtab file thus:
/vol1 VOL1:\
and we will then recognize
"/vol1/apache/conf/httpd.conf"
just as you might have coded it on UNIX. Similarly, if you access a path on a remote server, you can also do this in /etc/pathtab:
/remote/arnold ARNOLD/SYS:\
or even
/remote/arnold \ARNOLD\SYS\
and then we'll recognize
"/remote/arnold/apache/conf/httpd.conf"
And so forth. And the fact that I wrote "/remote/arnold" here isn't important either--it could just as well have been
/schwartznegger /ARNOLD/SYS:\
and you would code
"/schwartznegger/apache/conf/httpd.conf"
We're hoping this will make life easier.
* Originally published in Novell AppNotes
Disclaimer
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.