System V in AIX and Dynix/ptx

Document 157-28

This 19 April 2004 letter from Hatch to Shaughnessy attempts to excuse why little attempt was made to match SysV code to AIX code, Dynix/ptx code or Linux code.

[E]ach version of AIX and each version of Dynix/ptx are modifications or derivative works based on UNIX System V. The AIX work as a whole and the Dynix/ptx work as a whole are modifications of, or are derived from System V, including, but not limited to, the parts that have been identified previously as having been improperly contributed to Linux.

The AIX operating system, in its entirety, was either a derivative work based on or a modification of UNIX System V Release 3.2, which includes the following: kernel, interfaces, system calls, libraries, commands and architectural structure and sequence as licensed to IBM. As such, no feature of the AIX operating system will operate or retain necessary functionality in AIX independent from UNIX System V base-level functionality required by that feature. Therefore, as noted above, the entire AIX operating system is either based on, or is a modification of, UNIX system V Release 3.2, and IBM's contributions from the AIX operating system to Linux are in their entirety derivative works based on, or modifications of UNIX System V.

Similarly, the Dynix/ptx operating system, in its entirety, was either a derivative work based on or a modification of UNIX System V Release 4.2 ES/MP, which includes the following: kernel, interfaces, system calls, libraries, commands and architectural structure and sequence as licensed to Sequent. As such, no feature of the Dynix/ptx operating system will operate or retain necessary functionality in Dynix/ptx independent from UNIX System V base-level functionality required by that feature, particularly as it relates to multi-processor functions such as RCU and NUMA. Therefore, as noted above, the entire Dynix/ptx operating system is either based on, or is a modification of, UNIX System V Release 4.2ES/MP, and IBM's contributions from the Dynix/ptx operating system to Linux are in their entirety derivative works based on, or modifications of UNIX System V.

Based on the forgoing, the entirety of UNIX System V licensed to IBM and Sequent are the lines from which IBM's contributions of AIX and Dynix/ptx are derived.

In addition to identifying the entirety of UNIX System V as the specific lines of code from which IBM's contributions from AIX or Dynix/ptx are derived, SCO has undertaken the task of identifying the specific lines of UNIX System V found in the selected versions of AIX and Dynix/ptx provided by IBM. By doing so, however, SCO does not in any way admit the relevancy of such information. In fact, SCO steadfastly maintains that this item is not relevant to this litigation nor is it likely to lead to the discovery of admissible evidence. The main issue in this case is whether IBM has breached its contract with SCO because it contributed or otherwise disposed of a part of AIX or Dynix/ptx to others in contravention of the terms of the license agreement. Subject to these forgoing limitations, SCO has identified the lines of UNIX System V from which AIX and Dynix/ptx are derived in Exhibits E and F.


AIX

Document 157-28-E

The document specifies a list of AIX files and the lines thereof that are said to be derived from System V. For full details, see the source document. Here is a summary of the AIX source files and/or subdirectories named; the real surprise is how little there actually is:

AIX source directorysubdirectories and/or files
src/bldenv/make/ar.h
src/bldenv/cmp/cmp.c
src/bos/kernel/pfs/isubs.c
src/bos/kernel/sys/acct.h buf.h cred.h flock.h ipc.h msg.h sem.h termio.h ttychars.h ttydev.h
src/bos/usr/bin/awk/ banner/ bc/ bdiff/ bfs/ comm/ csplit/ dc/ echo/ ed/ expr/ factor/ file/ find/ ipcrm/ kill/ line/ ln/ ls/ mesg/ newform/ news/ nohup/ pack/ paste/ pg/ pr/ sccs/ sdiff/ sed/ sleep/ sort/ tee/ timex/ touch/ tty/ units/ unpack/
src/bos/usr/bin/bsh/args.c blok.c cmd.c ctype.c defs.c defs.h echo.c error.c expand.c fault.c func.c hash.c hash.h hashserv.c mac.c macro.c main.c mode.h msg.c name.c name.h print.c pwd.c service.c
src/cmdtext/usr/bin/spell/
src/gos/apps/twfontutil/include/fcntl.h
src/bos/usr/ccs/lib/lib300/ lib300s/ lib4014/ lib450/ libcurses/ libplot/ libprint/
src/bos/usr/include/IN/uparm.h
src/bos/usr/include/jfs/filsys.h ino.h inode.h param.h
src/bos/usr/share/lib/terminfo/

As of document 103-4, SCO had identified contributions from the following AIX files into Linux; only jfs/inode.h appears on the above list.

usr/include/jfs/inode.h
kernel/sys/vnode.h
kernel/sys/IA64/bootrecord.h
usr/include/liblvm.h
usr/include/lvmrec.h
usr/include/lvm.h
kernel/sys/hd_psn.h
kernel/sys/vgsa.h

Dynix/ptx

Document 157-28-F

The document specifies a list of Dynix/ptx files and the lines thereof that are said to be derived from System V. For full details, see the source document. Here is a summary of the Dynix/ptx source files and/or subdirectories named:

Dynix/ptx source directorysubdirectories and/or files
usr/src/cmd/acct/ awk/ banner/ bc/ bdiff/ bfs/ cal/ calendar/ cat/ checkeq/ chgrp/ chmod/ chown/ chroot/ ckbupscd/ cmp/ col/ comm/ cpio/ cpset/ cron/ csplit/ cut/ date/ dc/ dd/ deroff/ diff3/ echo/ ed/ env/ expr/ factor/ fdetach/ file/ find/ fmt/ fmtmsg/ getty/ graph/ head/ init/ join/ login/ logname/ ls/ mesg/ pg/ pwd/ rm/ sed/ wall/ wc/ write/
usr/src/cmd/fs.d/switchout.c
usr/src/cmd/fs.d/ufs/clri/clri.c
usr/src/cmd/fs.d/ufs/fsck/dir.c inode.c main.c pass1.c pass1b.c pass2.c pass4.c pass5.c setup.c utilities.c
usr/src/uts/io/kd/at_ansi.h connld/connld.c cram/cram.h ld0/partab.c pipemod.c pty/ptms.h rtc/rtc.h tli/tirdwr.h
usr/src/uts/kernel/i386/reg.h
usr/src/uts/kernel/i387/arith.s divmul.s e80387.h lipsq.h reg.s remsc.s round.s status.s store.s subadd.s trans.s
usr/src/uts/kernel/eisa/ascii.h xque.h
usr/src/uts/kernel/os/fs_subr.c
usr/src/uts/kernel/sys/acct.h auxv.h buf.h byteorder.h conf.h cred.h crtctl.h dirent.h dnlc.h elf.h elf_386.h elftypes.h errno.h euc.h eucioctl.h evecb.h hetero.h lock.h netconfig.h open.h poll.h procfs.h procset.h resource.h select.h siginfo.h statfs.h statvfs.h stermio.h strlog.h stropts.h strstat.h mount.h syscall.h sysi86.h sysmacros.h systeminfo.h termio.h termiox.h timeb.h times.g timod.h tiuser.h ttold.h uadmin.h ucontext.h uio.h inistd.h ustat.h utime.h utsname.h utssys.h vm.h
usr/src/uts/namefs/namenode.h

As of document 103-4, SCO had identified contributions from the following Dynix/ptx files into Linux; none of them appear on the above list.

kernel/sys/rclock.h
kernel/os/rclock.c
kernel/sys/kma_defer.h
kernel/os/kma_defer.c
kernel/os/kern_clock.c
kernel/i386/locore.s
kernel/i386/trap.c
kernel/i386/startup.c
kernel/i386/plocal.h
kernel/os/vfs_dio.c