ULTRIX 4: Unterschied zwischen den Versionen

Aus Knowledgebase
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „== ULTRIX == DEC released ULTRIX for the DECstation with release 3 in 1989. ULTRIX 4.0 already came in 1990 and quickly most DECstation and VAX machines were…“)
 
Keine Bearbeitungszusammenfassung
 
(14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== ULTRIX ==
== ULTRIX ==


DEC released ULTRIX for the DECstation with release 3 in 1989. ULTRIX 4.0 already came in 1990 and quickly most DECstation and VAX machines were running some release of 4.X. When people think of ULTRIX, they usually remember some 4.X release. ULTRIX 4 is based on 4.2BSD + some 4.3BSD + some System V. ULTRIX never received some modern stuff like shared libraries. Early 4.X releases sometimes had nasty bugs and people kept upgrading until it was stable. The last release was 4.5, released in 1995, but only few sites actually ran it. DECstation weren't really important by 1995 and there was little to be gained over 4.4 or 4.3A. ULTRIX comes with a full development system, TCP/IP, NFS, and so on. ULTRIX/RISC ships with a port of the MIPS C-Compiler. ULTRIX/VAX has the older VAX C compiler.
[[Datei:Decstation5000_240.jpg |thumb|right|DECstation 5000/240]]
ULTRIX got the ability to use and install on generic SCSI disks with 4.2. There was a bug in the disk driver that corrupts data on disks larger than 1GB on ULTRIX release 4.2 and earlier. A fix was introduced in 4.2A.
 
ULTRIX/RISC 4.5 supports all DECstations and DECsystems from the earliest 3100 to the latest 5000/260. R4000 based machines need 4.3A or newer. ULTRIX/VAX runs on all VAX machines up to the CVAX range, including the popular first generation MicroVAX 3100 and VAXstation 3100. ULTRIX supports SMP on the large DECsystem 5800 and VAX 6000. ULTRIX/VAX does not run on any more modern VAX, like the VAXstation 4000 series.
DEC released ULTRIX for the DECstation with release 3 in 1989. ULTRIX 4.0 already came in 1990 and quickly most DECstation and VAX machines were running some release of 4.X. When people think of ULTRIX, they usually remember some 4.X release. ULTRIX 4 is based on 4.2BSD + some 4.3BSD + some System V. ULTRIX never received some modern features like shared libraries. Early 4.X releases sometimes had nasty bugs and people kept upgrading until it was stable. The last release was 4.5, released in 1995, but only few sites actually ran it. DECstations weren't really important by 1995 and there was little to be gained over 4.4 or 4.3A. ULTRIX comes with a full development system, TCP/IP, NFS, and so on. ULTRIX/RISC ships with a port of the MIPS C-Compiler. ULTRIX/VAX has the older VAX C compiler. In general, ULTRIX releases become better over times as bugs get fixed by newer releases. Unless you are into serious retro-computing or have many machines and want some diversity, ULTRIX 4.5 is the version to go for. Compaq has released a Y2K patch kit for the last ULTRIX releases, which is also nice to have. The ULTRIX 4.5 release of this patch kit fixes several other bugs, patches the libc, and so on.
ULTRIX 4 requires license PAKs like all the other DEC operating systems. A two-user system will boot up fine without any licenses installed. Having more than two users and using layered products needs extra licenses.
<p>
There are two potential X11 environments for ULTRIX: DECwindows/XUI and DECwindows/Motif. Motif is much bigger and slower. If you have a slow machine like a VAXstation or a DECstation 3100, you may want to keep XUI and avoid Motif. Later ULTRIX releases offer a choice of desktops during installation. You can't have both installed at the same time. On the other hand, you might want to replace it all with a generic installation of X11R5 or even newer.
<p>
ULTRIX got the ability to use and install on generic SCSI disks with 4.2. There was a bug in the disk driver that corrupts data on disks larger than 1GB on ULTRIX release 4.2 and earlier. A fix was introduced in 4.2A. If you have an ULTRIX release that can handle large disks, you are only limited by a maximum filesystem size of 2GB. ULTRIX has classic BSD disklabels and counts filesystems from "a" to "h". Filesystems can be up to 2GB in size. You can use larger disks with multiple GB if you partition the disk carefully.
<p>
ULTRIX/RISC 4.5 supports all DECstations and DECsystems from the earliest 3100 to the latest 5000/260. R4000 based machines need 4.3A or newer. ULTRIX/VAX runs on all VAX machines up to the CVAX range, including the popular first generation MicroVAX 3100 and VAXstation 3100. ULTRIX supports SMP on the large DECsystem 5800 and VAX 6000. ULTRIX/VAX does not run on any more modern VAX, like the VAXstation 4000 series. To bring some perspective: The first DECstation, the DS3100, was released at the time as the VAXstation 3100. The DECstation 3100 delivers about 12 MIPS, while the VAXstation 3100 brings about 3 MIPS. It was obvious already in 1989 and people did not buy VAXstations as ULTRIX machines in large numbers. The fastest small VAX supported is the VAXstation 3100/38, which will get you something between 3 to 4 MIPS. So in the end, every DECstation is a lot faster than a VAX running ULTRIX.
<p>
ULTRIX 4 requires license PAKs ("Product Activation Key") like all the other DEC operating systems. A two-user system will boot up fine without any licenses installed. Having more than two users and using layered products needs extra licenses.
<p>
When you look for ULTRIX, you should also search for the "software product library" or "layered product software".




Zeile 45: Zeile 54:


show partition table
show partition table
chpt -q /dev/rrz0c
chpt -q /dev/rrz0c


create default table
create default table
chpt -d /dev/rrz0c
chpt -d /dev/rrz0c


adjust partitions
adjust partitions
chpt -pa 0 65536 /dev/rrz0c
chpt -pa 0 65536 /dev/rrz0c




Zeile 72: Zeile 81:
load patchsets
load patchsets
Base and UWS
Base and UWS
setenv PATCHES /path/to/patch/dir
setenv PATCHES /path/to/patch/dir
run patch scripts like:
run patch scripts like:
for i in `ls U*`; do ./$i ; done
for i in `ls U*`; do ./$i ; done




Zeile 80: Zeile 89:


configure TCP/IP network:
configure TCP/IP network:
netsetup install
netsetup install


configure resolver
configure resolver
bindsetup
bindsetup
svcsetup
svcsetup


configure DECnet:
configure DECnet:
/usr/etc/decnetsetup [basic|advanced]
/usr/etc/decnetsetup [basic|advanced]


--------------
--------------
Zeile 102: Zeile 111:


diskless management services utility
diskless management services utility
/etc/dms
/etc/dms


remote installation services
remote installation services
/etc/ris
/etc/ris


MIPS RISC C compiler
MIPS RISC C compiler
/bin/cc
/bin/cc


DEC ANSI C compiler
DEC ANSI C compiler
/usr/bin/c89
/usr/bin/c89


DEC C++ compiler
DEC C++ compiler
/usr/bin/cxx
/usr/bin/cxx


DEC Fortran compiler
DEC Fortran compiler
/usr/bin/f77
/usr/bin/f77


MIPS Pascal compiler
MIPS Pascal compiler
/usr/bin/pc
/usr/bin/pc


--------------
--------------
Zeile 126: Zeile 135:
'''build freeware:'''
'''build freeware:'''


flex-2.5.4
'''flex-2.5.4'''
gcc-2.7.2.3
 
make-3.75
'''gcc-2.7.2.3'''
m4-1.4
 
patch-2.5.9
'''make-3.75'''
binutils-2.12.1
 
get gcc-2.95.3
'''m4-1.4'''
get libio patch
 
copy patch to libio dir
'''patch-2.5.9'''
apply patch like:
 
/usr/local/bin/patch < libio_patch.txt
'''binutils-2.12.1'''
build gcc-2.95.3 as usual
 
libiconv-1.11
'''gcc-2.95.3:'''
gettext-0.14.6  -- without C++
get gcc-2.95.3
bash-2..05b
get [[https://kb.pocnet.net/wiki/Gcc-2.95.3_libIO_patch_for_ULTRIX]] libIO patch
bzip2-1.0.3
copy patch to libio dir
neu: bzip2-1.0.6
apply patch like:
bison-1.875
/usr/local/bin/patch < libio_patch.txt
jpeg-6b
build gcc-2.95.3 as usual
tar-1.11.8
 
make-3.79 --disable-locale --disable-nls
'''libiconv-1.11'''
unzip-5.52
 
zip-2.32
'''gettext-0.14.6:'''
sed-3.02
  build without C++
 
'''bash-2.05b'''
 
'''bzip2-1.0.3'''
 
'''bzip2-1.0.6'''
 
'''bison-1.875'''
 
'''jpeg-6b'''
 
'''tar-1.11.8'''
 
'''make-3.79:'''
--disable-locale --disable-nls
 
'''unzip-5.52'''
 
'''zip-2.32'''
 
'''sed-3.02'''
 
'''gcc-3.0.4:'''
needs [[https://kb.pocnet.net/wiki/Gcc-2.95.3_libIO_patch_for_ULTRIX]] libIO patch.
needs fixes for libstdc++
config.h.in:
add "#define LITTLE_ENDIAN 1"
comment or undef  "#define HAVE_IEEEFP_H 1"
the ieeefp.h fix might only be applieable for config.h when the build has failed.
 
 
'''perl-5.005_04:'''
I chose to build with gcc. You need to change the CFLAGS in hints/ultrix_4.sh
choose "none" for shared libraries, because ULTRIX doesn't have SL.
set LANG or LC_ALL to "C"


gcc-3.0.4:
take install-sh out of gawk-3.1.8 and install it as /usr/local/bin/install
<nowiki>needs fixes for libstdc++
config.h.in:
add "#define LITTLE_ENDIAN 1"
comment or undef  "#define HAVE_IEEEFP_H 1"
the ieeefp.h fix might only be applieable for config.h when the build has failed.
</nowiki>


perl-5.005_04:
'''slang-1.4.9:'''
<nowiki>I chose to build with gcc. You need to change the CFLAGS in hints/ultrix_4.sh
use /usr/local/bin/install
choose "none" for shared libraries, because ULTRIX doesn't have SL.
set LANG or LC_ALL to "C"</nowiki>


take install-sh out of gawk-3.1.8 and install it as /usr/local/bin/install


slang-1.4.9:
'''gawk-3.1.8:'''
use /usr/local/bin/install
--disable-locale


gawk --disable-locale
gawk-3.1.8:
  If the program you are trying to build complains about that there is no symbol
  If the program you are trying to build complains about that there is no symbol
  strdup to link to, then add the library “libiberty” (found in for example GNU
  strdup to link to, then add the library “libiberty” (found in for example GNU
  binutils package) i.e. add the switch –liberty when you link.  
  binutils package) i.e. add the switch –liberty when you link.  


copy snprintf.h to /usr/local/include


tar-1.15.1:
copy snprintf.h to /usr/local/include
<nowiki>include snprintf.h in lib/argp-fmtstream.c
add -libiberty when linking tar</nowiki>


top-3.5 - don't include color support
'''tar-1.15.1:'''
glib-1.2.10 -- without-threads
include snprintf.h in lib/argp-fmtstream.c
add -libiberty when linking tar


X11R5
'''top-3.5:'''
don't include color support


diffutils-2.8.1:
'''glib-1.2.10:'''
<nowiki>assumes libintl, and failes, because "undefined reference to `libintl_fprintf'"
--without-threads
add "-lintl"
undefined reference to `mkstemp'
include <mkstemp.h></nowiki>


libungif-4.1.4:
'''X11R5'''
<nowiki>needs strdup()
add -liberty</nowiki>


libpng-1.2.31:
'''diffutils-2.8.1:'''
needs an #include <snprintf.h> in pngrutil.c.
assumes libintl, and failes, because "undefined reference to `libintl_fprintf'"
add "-lintl"
undefined reference to `mkstemp'
include <mkstemp.h>


readline-6.1:
'''libungif-4.1.4:'''
<nowiki>--disable-shared
needs strdup()
note: readline uses terminal lib functions, such as tputs, but doesn't link to any such library.
add -liberty
This means that apps using readline also need to link to libtermcap, libcurses or libncurses.
Remember when you see "undefined reference to `tputs'".
</nowiki>


bash-3.2
'''libpng-1.2.31:'''
needs an #include <snprintf.h> in pngrutil.c.


jasper-1.900.1
'''readline-6.1:'''
--disable-shared
note: readline uses terminal lib functions, such as tputs, but doesn't link to any such library.
This means that apps using readline also need to link to libtermcap, libcurses or libncurses.
Remember when you see "undefined reference to `tputs'".


freetype-2.3.9:
--disable-shared


tcl-8.3.5
'''bash-3.2'''


'''jasper-1.900.1'''


prng-3.0.2
'''freetype-2.3.9:'''
tin-1.9.5 --enable-broken-system-fix
--disable-shared
autoconf-2.13


screen-3.9.15
'''tcl-8.3.5'''
<nowiki>needs #include <sys/syslog.h>  in acls.c</nowiki>


openssl-0.9.8m
autoconf-2.60
automake-1.9.6
pcre-8.10
pcre-8.20:
if you link pcre with readline remember to also link to libncurses or similar.


zsh-4.3.10:
'''prng-3.0.2'''
some tests failed


ghostscript 7.07:
'''tin-1.9.5:'''
add SM and ICE to XLIBS in Makefile if you use X11R6. Not necessary with X11R5.
--enable-broken-system-fix


xpm-3.4k:
'''autoconf-2.13'''
check that xpm.h gets installed


t1lib-5.1.2
'''screen-3.9.15:'''
expat-2.0.1
needs #include <sys/syslog.h>  in acls.c
teTeX 2.0.2


vim-5.8
'''openssl-0.9.8m'''
--without-x --enable-gui=no


vim-6.4
'''autoconf-2.60'''
--without-x --enable-gui=no


renderext-0.9
'''automake-1.9.6'''
renderproto-0.9.3
gdbm-1.8.3
binutils-2.15


tiff-3.8.2:
'''pcre-8.10'''
problems with libtool. remove -version_info


gtk+-1.2.10
'''pcre-8.20:'''
libstroke-0.5.1
if you link pcre with readline remember to also link to libncurses or similar.
db-4.4.20
ssh-1.2.32
fileutils-4.1
findutils-4.1


prngd-0.9.29:
'''zsh-4.3.10:'''
<nowiki>remove #include sys/socket.h from prngd.c, serverloop.c, unix_socket.c,
some tests failed
tcp_socket.c, sockio.c,
</nowiki>


zlib-1.2.5:
'''ghostscript 7.07:'''
make install doesn't work, because it assumes shared libs
add SM and ICE to XLIBS in Makefile if you use X11R6. Not necessary with X11R5.


zlib-1.2.8:
'''xpm-3.4k:'''
words just fine out of the box.
check that xpm.h gets installed


openssh 5.8p2:
'''t1lib-5.1.2'''


<nowiki>remove sys/socket.h and netinet/ip.h from several files when "includes.h" is
'''expat-2.0.1'''
included.


config.h:
'''teTeX 2.0.2'''


#define BROKEN_READV_COMPARISON
'''vim-5.8:'''
#undef HAVE_TYPE_IN_UTMP
--without-x --enable-gui=no
#define DISABLE_UTMPX
#undef ENABLE_PKCS11


running sshd in debug mode:
'''vim-6.4:'''
/bin/sshd -p <listening port> -D -d -e
--without-x --enable-gui=no


ssh-keygen.c
'''renderext-0.9'''
remove references to pkcs11_init and pkcs11_terminate from
ssh-keygen.c on lines 1410 and 1493.</nowiki>


libid3tag
'''renderproto-0.9.3'''


libidn-1.19:
'''gdbm-1.8.3'''
<nowiki>#define ssize_t size_t in lib/nfkc.c
EILSEQ undefined in gltests/test-errno.c
lstat undefined in gltests/test-lstat.c
no solution yet
installed without testing, but looks okay</nowiki>


libidn-1.26:
'''binutils-2.15'''
<nowiki>strdup undefined. needs -liberty in lib
add "LIBS = -liberty" to src/Makefile
"#define ssize_t size_t" in lib/stringprep.h</nowiki>


gtk-1.2.8:
'''tiff-3.8.2:'''
<nowiki>some problems with Xsetlocale for unknown reasons. I think this used to just work.
problems with libtool. remove -version_info
"#define _Xsetlocale setlocale" in gtk/gtkrc.c and gdk/gdkim.c</nowiki>


texinfo-4.8:
'''gtk+-1.2.10'''
<nowiki>comment out #include setlocale.h in lib/system.h</nowiki>


tin-1.9.6
'''libstroke-0.5.1'''


wget-1.9.1:
'''db-4.4.20'''
<nowiki>remove #include sys/socket.h from src/host.h
add #include sys/socket.h in ftp.c
ftp-ls.c
headers.c
http.c
main.c
rbuf.c
recur.c
retr.c
add -lintl to src/Makefile under LIBS</nowiki>


make-3.81
'''ssh-1.2.32'''
bc-1.06:
<nowiki>--with-readline</nowiki>


openssl-0.9.8r
'''fileutils-4.1'''
<nowiki>./Configure zlib --prefix=/usr/local --openssldir=/usr/local ultrix-gcc
temporally create a link /usr/local as /usr/local/ssl
then rebuild some apps that rely on openssl.</nowiki>


Xaw3d
'''findutils-4.1'''
follow the instructions for building outside the source tree


m4-1.4.5:
'''prngd-0.9.29:'''
<nowiki>fix src/stackovf.c:
remove #include sys/socket.h from prngd.c, serverloop.c, unix_socket.c, tcp_socket.c, sockio.c,
 
 
'''zlib-1.2.5: FAILs'''
make install doesn't work, because it assumes shared libs
 
'''zlib-1.2.8:'''
words just fine out of the box.
 
'''openssh 5.8p2:'''
 
remove sys/socket.h and netinet/ip.h from several files when "includes.h" is included.
 
config.h:
 
#define BROKEN_READV_COMPARISON
#undef HAVE_TYPE_IN_UTMP
#define DISABLE_UTMPX
#undef ENABLE_PKCS11
 
running sshd in debug mode:
/bin/sshd -p <listening port> -D -d -e
 
ssh-keygen.c
remove references to pkcs11_init and pkcs11_terminate from
ssh-keygen.c on lines 1410 and 1493.
 
'''libid3tag'''
 
'''libidn-1.19:'''
#define ssize_t size_t in lib/nfkc.c
EILSEQ undefined in gltests/test-errno.c
lstat undefined in gltests/test-lstat.c
no solution yet
installed without testing, but looks okay
 
'''libidn-1.26:'''
strdup undefined. needs -liberty in lib
add "LIBS = -liberty" to src/Makefile
"#define ssize_t size_t" in lib/stringprep.h
 
'''gtk-1.2.8:'''
some problems with Xsetlocale for unknown reasons. I think this used to just work.
"#define _Xsetlocale setlocale" in gtk/gtkrc.c and gdk/gdkim.c
 
'''texinfo-4.8:'''
comment out #include setlocale.h in lib/system.h
 
'''tin-1.9.6'''
 
'''wget-1.9.1:'''
remove #include sys/socket.h from src/host.h
add #include sys/socket.h in ftp.c
ftp-ls.c
headers.c
http.c
main.c
rbuf.c
recur.c
retr.c
add -lintl to src/Makefile under LIBS
 
'''make-3.81'''
 
'''bc-1.06:'''
--with-readline
 
'''openssl-0.9.8r:'''
./Configure zlib --prefix=/usr/local --openssldir=/usr/local ultrix-gcc
temporally create a link /usr/local as /usr/local/ssl
then rebuild some apps that rely on openssl.
 
'''Xaw3d:'''
follow the instructions for building outside the source tree
 
'''m4-1.4.5:'''
fix src/stackovf.c:


   vec.sv_flags = (SV_ONSTACK
   vec.sv_flags = (SV_ONSTACK
#ifdef SV_RESETHAND
#ifdef SV_RESETHAND
                   | SV_RESETHAND
                   | SV_RESETHAND
#endif
#endif
                 );
                 );


some tests fail with doc/m4.texinfo. This is known.</nowiki>
some tests fail with doc/m4.texinfo. This is known.




Zeile 364: Zeile 417:


If this happens, make sure:
If this happens, make sure:
<nowiki>the client is in the /etc/hosts of the server
the client is in the /etc/hosts of the server
the r services have to be enabled in /etc/inetd.conf on the server
the r services have to be enabled in /etc/inetd.conf on the server
/usr/adm/ris/.rhosts should include the client
/usr/adm/ris/.rhosts should include the client
/usr/adm/ris/clients/risdb should include the client
/usr/adm/ris/clients/risdb should include the client


/etc/hosts should be beautiful like this:
/etc/hosts should be beautiful like this:


192.168.2.123  ds3100  ds3100.domain.tld
192.168.2.123  ds3100  ds3100.domain.tld


but NOT like this:
but NOT like this:


192.168.2.123    ds3100.domain.tld  ds3100</nowiki>
192.168.2.123    ds3100.domain.tld  ds3100


-------------------
-------------------
Zeile 388: Zeile 441:
ULTRIX 4.1 partition for DECstation 3100:
ULTRIX 4.1 partition for DECstation 3100:


<nowiki>make sure there is enough swap space!
make sure there is enough swap space!


ULTRIX can only swap on partations that are configured in the kernel.
ULTRIX can only swap on partations that are configured in the kernel.


config          vmunix  root on rz0a  swap on rz0b and rz0e  dumps on rz0b
config          vmunix  root on rz0a  swap on rz0b and rz0e  dumps on rz0b


fstab:
fstab:


/dev/rz0a:/:rw:1:1:ufs::                                                         
/dev/rz0a:/:rw:1:1:ufs::                                                         
/dev/rz0d:/var:rw:1:2:ufs::                                                     
/dev/rz0d:/var:rw:1:2:ufs::                                                     
/dev/rz1a:/usr:rw:1:2:ufs::                                                     
/dev/rz1a:/usr:rw:1:2:ufs::                                                     
/dev/rz0f:/home:rw:1:2:ufs::                                                     
/dev/rz0f:/home:rw:1:2:ufs::                                                     
/dev/rz0e::sw:::::                                                               
/dev/rz0e::sw:::::                                                               


bash-2.05b# chpt -q /dev/rrz0a                                                   
bash-2.05b# chpt -q /dev/rrz0a                                                   
/dev/rrz0a                                                                       
/dev/rrz0a                                                                       
Current partition table:                                                         
Current partition table:                                                         
partition    bottom        top      size    overlap                           
partition    bottom        top      size    overlap                           
     a              0    131071    131072    c,g,h                            /
     a              0    131071    131072    c,g,h                            /
     b        131072    327679    196608    c                              swap1   
     b        131072    327679    196608    c                              swap1   
Zeile 415: Zeile 468:
     h              0          0          0    a,c,g                             
     h              0          0          0    a,c,g                             
                              
                              
bash-2.05b# chpt -q /dev/rrz1a                                                   
bash-2.05b# chpt -q /dev/rrz1a                                                   
/dev/rrz1a                                                                       
/dev/rrz1a                                                                       
Current partition table:                                                         
Current partition table:                                                         
partition    bottom        top      size    overlap                           
partition    bottom        top      size    overlap                           
     a              0    2050859    2050860    b,c,d,e,f,g,h                  /usr   
     a              0    2050859    2050860    b,c,d,e,f,g,h                  /usr   
     b              0          0          0    a,c,d,e,f,g,h                     
     b              0          0          0    a,c,d,e,f,g,h                     
Zeile 427: Zeile 480:
     g              0          0          0    a,b,c,d,e,f,h                     
     g              0          0          0    a,b,c,d,e,f,h                     
     h              0          0          0    a,b,c,d,e,f,g                     
     h              0          0          0    a,b,c,d,e,f,g                     
</nowiki>
 
 
----------------------
----------------------


Zeile 479: Zeile 533:
----------------------
----------------------


Installing ULTRIX 4.2 on a MicroVAX 3100:
'''Installing ULTRIX 4.5 on a MicroVAX 3100:'''
 
[[Datei:Microvax3100.jpg |thumb|right|MicroVAX 3100]]
 
[[Datei:MicroWAX.jpg |thumb|right|Microwax: of course!]]




change /etc/ttys:
change /etc/ttys:
add secure to all ttys
add secure to all ttys
 
'''flex-2.5.4a'''
 
'''bison-1.28'''
 
'''m4-1.4'''
 
'''make-3.75'''
 
'''sed-3.02'''
 
'''texinfo-4.8'''
 
'''gcc-2.7.2.3'''
 
'''gzip-1.2.4a'''
 
'''make-3.79'''
 
'''bash-2.05b'''
 
'''replace /bin/sh with bash'''
 
'''cp install-sh /usr/local/bin/install from gawk-3.0.6'''


flex-2.5.4a
'''bzip2-1.0.6'''
bison-1.28
m4-1.4
make-3.75
sed-3.02
texinfo-4.8
gcc-2.7.2.3
gzip-1.2.4a
make-3.79
bash-2.05b


replace /bin/sh with bash
'''grep-2.3'''


cp install-sh /usr/local/bin/install from gawk-3.0.6
'''gcc-2.8.1:'''
--enable-languages=c,c++,f77 --disable-nls


bzip2-1.0.6
'''perl-5.005_04:'''
grep-2.3
use gcc


gcc-2.8.1
'''X11R5'''
<nowiki>--enable-languages=c,c++,f77 --disable-nls</nowiki>


perl-5.005_04
'''gcc-2.95.3:'''
use gcc
use libIO patch


X11R5
[[Kategorie: UNIX]]
[[Kategorie: ULTRIX]]

Aktuelle Version vom 3. April 2019, 01:01 Uhr

ULTRIX

DECstation 5000/240

DEC released ULTRIX for the DECstation with release 3 in 1989. ULTRIX 4.0 already came in 1990 and quickly most DECstation and VAX machines were running some release of 4.X. When people think of ULTRIX, they usually remember some 4.X release. ULTRIX 4 is based on 4.2BSD + some 4.3BSD + some System V. ULTRIX never received some modern features like shared libraries. Early 4.X releases sometimes had nasty bugs and people kept upgrading until it was stable. The last release was 4.5, released in 1995, but only few sites actually ran it. DECstations weren't really important by 1995 and there was little to be gained over 4.4 or 4.3A. ULTRIX comes with a full development system, TCP/IP, NFS, and so on. ULTRIX/RISC ships with a port of the MIPS C-Compiler. ULTRIX/VAX has the older VAX C compiler. In general, ULTRIX releases become better over times as bugs get fixed by newer releases. Unless you are into serious retro-computing or have many machines and want some diversity, ULTRIX 4.5 is the version to go for. Compaq has released a Y2K patch kit for the last ULTRIX releases, which is also nice to have. The ULTRIX 4.5 release of this patch kit fixes several other bugs, patches the libc, and so on.

There are two potential X11 environments for ULTRIX: DECwindows/XUI and DECwindows/Motif. Motif is much bigger and slower. If you have a slow machine like a VAXstation or a DECstation 3100, you may want to keep XUI and avoid Motif. Later ULTRIX releases offer a choice of desktops during installation. You can't have both installed at the same time. On the other hand, you might want to replace it all with a generic installation of X11R5 or even newer.

ULTRIX got the ability to use and install on generic SCSI disks with 4.2. There was a bug in the disk driver that corrupts data on disks larger than 1GB on ULTRIX release 4.2 and earlier. A fix was introduced in 4.2A. If you have an ULTRIX release that can handle large disks, you are only limited by a maximum filesystem size of 2GB. ULTRIX has classic BSD disklabels and counts filesystems from "a" to "h". Filesystems can be up to 2GB in size. You can use larger disks with multiple GB if you partition the disk carefully.

ULTRIX/RISC 4.5 supports all DECstations and DECsystems from the earliest 3100 to the latest 5000/260. R4000 based machines need 4.3A or newer. ULTRIX/VAX runs on all VAX machines up to the CVAX range, including the popular first generation MicroVAX 3100 and VAXstation 3100. ULTRIX supports SMP on the large DECsystem 5800 and VAX 6000. ULTRIX/VAX does not run on any more modern VAX, like the VAXstation 4000 series. To bring some perspective: The first DECstation, the DS3100, was released at the time as the VAXstation 3100. The DECstation 3100 delivers about 12 MIPS, while the VAXstation 3100 brings about 3 MIPS. It was obvious already in 1989 and people did not buy VAXstations as ULTRIX machines in large numbers. The fastest small VAX supported is the VAXstation 3100/38, which will get you something between 3 to 4 MIPS. So in the end, every DECstation is a lot faster than a VAX running ULTRIX.

ULTRIX 4 requires license PAKs ("Product Activation Key") like all the other DEC operating systems. A two-user system will boot up fine without any licenses installed. Having more than two users and using layered products needs extra licenses.

When you look for ULTRIX, you should also search for the "software product library" or "layered product software".


Installing ULTRIX on a DECstation

Get the CDs ready: ULTRIX 4.5 installation CD. ULTRIX software product library CDs ULTRIX consolidated software distribution



.cshrc:

if ($term == xterm-256color) then
setenv TERM vt100
endif

.bashrc:

# set a fancy prompt
PS1='\u@\h:\w\$ '
export PS1

.profile:

if [ $TERM = "xterm-256color" ]
then TERM=vt100; export TERM
fi

install ULTRIX 4.5

boot ULTRIX installation media. choose single user shell partition disk with chpt

show partition table

chpt -q /dev/rrz0c

create default table

chpt -d /dev/rrz0c

adjust partitions

chpt -pa 0 65536 /dev/rrz0c


choose advanced installation select everything

load license PAKs lmf reg <template>

load layered products DECnet, Fortran, C++, Pascal, disk shadowing

build kernel for DECnet /usr/etc/decnetsetup kernel


DEC released a Y2K patchset for ULTRIX 4.3A and later:

load patchsets Base and UWS

setenv PATCHES /path/to/patch/dir

run patch scripts like:

for i in `ls U*`; do ./$i ; done



configure TCP/IP network:

netsetup install

configure resolver

bindsetup
svcsetup

configure DECnet:

/usr/etc/decnetsetup [basic|advanced]

ULTRIX /bin/sh is an ancient Bourne shell. It is best to replace it:

mv /bin/sh /bin/sh.save
cp -p /usr/bin/ksh /bin/sh

if bash is build copy /usr/local/bin/bash to /bin/sh


interesting things and tools:

diskless management services utility

/etc/dms

remote installation services

/etc/ris

MIPS RISC C compiler

/bin/cc

DEC ANSI C compiler

/usr/bin/c89

DEC C++ compiler

/usr/bin/cxx

DEC Fortran compiler

/usr/bin/f77

MIPS Pascal compiler

/usr/bin/pc

build freeware:

flex-2.5.4

gcc-2.7.2.3

make-3.75

m4-1.4

patch-2.5.9

binutils-2.12.1

gcc-2.95.3:

get gcc-2.95.3
get [[1]] libIO patch
copy patch to libio dir
apply patch like:
/usr/local/bin/patch < libio_patch.txt
build gcc-2.95.3 as usual

libiconv-1.11

gettext-0.14.6:

build without C++

bash-2.05b

bzip2-1.0.3

bzip2-1.0.6

bison-1.875

jpeg-6b

tar-1.11.8

make-3.79:

--disable-locale --disable-nls

unzip-5.52

zip-2.32

sed-3.02

gcc-3.0.4:

needs [[2]] libIO patch.
needs fixes for libstdc++
config.h.in:
add "#define LITTLE_ENDIAN 1"
comment or undef  "#define HAVE_IEEEFP_H 1"
the ieeefp.h fix might only be applieable for config.h when the build has failed.


perl-5.005_04:

I chose to build with gcc. You need to change the CFLAGS in hints/ultrix_4.sh
choose "none" for shared libraries, because ULTRIX doesn't have SL.
set LANG or LC_ALL to "C"
take install-sh out of gawk-3.1.8 and install it as /usr/local/bin/install

slang-1.4.9:

use /usr/local/bin/install


gawk-3.1.8:

--disable-locale
If the program you are trying to build complains about that there is no symbol
strdup to link to, then add the library “libiberty” (found in for example GNU
binutils package) i.e. add the switch –liberty when you link. 


copy snprintf.h to /usr/local/include

tar-1.15.1:

include snprintf.h in lib/argp-fmtstream.c
add -libiberty when linking tar

top-3.5: don't include color support

glib-1.2.10:

--without-threads

X11R5

diffutils-2.8.1:

assumes libintl, and failes, because "undefined reference to `libintl_fprintf'"
add "-lintl"
undefined reference to `mkstemp'
include <mkstemp.h>

libungif-4.1.4:

needs strdup()
add -liberty

libpng-1.2.31:

needs an #include <snprintf.h> in pngrutil.c.

readline-6.1:

--disable-shared
note: readline uses terminal lib functions, such as tputs, but doesn't link to any such library.
This means that apps using readline also need to link to libtermcap, libcurses or libncurses.
Remember when you see "undefined reference to `tputs'".


bash-3.2

jasper-1.900.1

freetype-2.3.9:

--disable-shared

tcl-8.3.5


prng-3.0.2

tin-1.9.5:

--enable-broken-system-fix

autoconf-2.13

screen-3.9.15: needs #include <sys/syslog.h> in acls.c

openssl-0.9.8m

autoconf-2.60

automake-1.9.6

pcre-8.10

pcre-8.20:

if you link pcre with readline remember to also link to libncurses or similar.

zsh-4.3.10:

some tests failed

ghostscript 7.07:

add SM and ICE to XLIBS in Makefile if you use X11R6. Not necessary with X11R5.

xpm-3.4k:

check that xpm.h gets installed

t1lib-5.1.2

expat-2.0.1

teTeX 2.0.2

vim-5.8:

--without-x --enable-gui=no

vim-6.4:

--without-x --enable-gui=no

renderext-0.9

renderproto-0.9.3

gdbm-1.8.3

binutils-2.15

tiff-3.8.2:

problems with libtool. remove -version_info

gtk+-1.2.10

libstroke-0.5.1

db-4.4.20

ssh-1.2.32

fileutils-4.1

findutils-4.1

prngd-0.9.29:

remove #include sys/socket.h from prngd.c, serverloop.c, unix_socket.c, tcp_socket.c, sockio.c, 


zlib-1.2.5: FAILs

make install doesn't work, because it assumes shared libs

zlib-1.2.8:

words just fine out of the box.

openssh 5.8p2:

remove sys/socket.h and netinet/ip.h from several files when "includes.h" is included.
config.h:
#define BROKEN_READV_COMPARISON
#undef HAVE_TYPE_IN_UTMP
#define DISABLE_UTMPX
#undef ENABLE_PKCS11
running sshd in debug mode:
/bin/sshd -p <listening port> -D -d -e
ssh-keygen.c
remove references to pkcs11_init and pkcs11_terminate from
ssh-keygen.c on lines 1410 and 1493.

libid3tag

libidn-1.19:

#define ssize_t size_t in lib/nfkc.c
EILSEQ undefined in gltests/test-errno.c
lstat undefined in gltests/test-lstat.c
no solution yet
installed without testing, but looks okay

libidn-1.26:

strdup undefined. needs -liberty in lib
add "LIBS = -liberty" to src/Makefile
"#define ssize_t size_t" in lib/stringprep.h

gtk-1.2.8:

some problems with Xsetlocale for unknown reasons. I think this used to just work.
"#define _Xsetlocale setlocale" in gtk/gtkrc.c and gdk/gdkim.c

texinfo-4.8:

comment out #include setlocale.h in lib/system.h

tin-1.9.6

wget-1.9.1:

remove #include sys/socket.h from src/host.h
add #include sys/socket.h in ftp.c
ftp-ls.c
headers.c
http.c
main.c
rbuf.c
recur.c
retr.c
add -lintl to src/Makefile under LIBS

make-3.81

bc-1.06:

--with-readline

openssl-0.9.8r:

./Configure zlib --prefix=/usr/local --openssldir=/usr/local ultrix-gcc
temporally create a link /usr/local as /usr/local/ssl
then rebuild some apps that rely on openssl.

Xaw3d:

follow the instructions for building outside the source tree

m4-1.4.5:

fix src/stackovf.c:
 vec.sv_flags = (SV_ONSTACK
#ifdef SV_RESETHAND
                 | SV_RESETHAND
#endif
                );
some tests fail with doc/m4.texinfo. This is known.



RIS - remote installation service

ULTRIX provides ris, as a way to install from the network. It is easy to setup by scripts.

A common failure is this:

Cannot find rzux1 in risdb file.  Check the sytem manager of                    
your host server.                                                               

If this happens, make sure:

the client is in the /etc/hosts of the server
the r services have to be enabled in /etc/inetd.conf on the server
/usr/adm/ris/.rhosts should include the client
/usr/adm/ris/clients/risdb should include the client
/etc/hosts should be beautiful like this:
192.168.2.123   ds3100  ds3100.domain.tld
but NOT like this:
192.168.2.123    ds3100.domain.tld  ds3100

ULTRIX 4.1 contains a floating point signalling bug. a patch is supplied with and needed for DEC Fortran.

ULTRIX 4.1 on RISC is also full of bugs. It is really best to avoid that version.


ULTRIX 4.1 partition for DECstation 3100:

make sure there is enough swap space!

ULTRIX can only swap on partations that are configured in the kernel.

config          vmunix  root on rz0a  swap on rz0b and rz0e  dumps on rz0b

fstab:

/dev/rz0a:/:rw:1:1:ufs::                                                        
/dev/rz0d:/var:rw:1:2:ufs::                                                     
/dev/rz1a:/usr:rw:1:2:ufs::                                                     
/dev/rz0f:/home:rw:1:2:ufs::                                                    
/dev/rz0e::sw:::::                                                              
bash-2.05b# chpt -q /dev/rrz0a                                                  
/dev/rrz0a                                                                      
Current partition table:                                                        
partition     bottom        top       size    overlap                           
   a              0     131071     131072    c,g,h                             /
   b         131072     327679     196608    c                              swap1   
   c              0     832526     832527    a,b,d,e,f,g,h                     
   d         327680     393215      65536    c                                 /var
   e         589824     832526     242703    c                                swap2 
   f         393216     589823     196608    c                                 /home
   g              0          0          0    a,c,h                             
   h              0          0          0    a,c,g                             
                           
bash-2.05b# chpt -q /dev/rrz1a                                                  
/dev/rrz1a                                                                      
Current partition table:                                                        
partition     bottom        top       size    overlap                           
   a              0    2050859    2050860    b,c,d,e,f,g,h                  /usr   
   b              0          0          0    a,c,d,e,f,g,h                     
   c              0    2050859    2050860    a,b,d,e,f,g,h                     
   d              0          0          0    a,b,c,e,f,g,h                     
   e              0          0          0    a,b,c,d,f,g,h                     
   f              0          0          0    a,b,c,d,e,g,h                     
   g              0          0          0    a,b,c,d,e,f,h                     
   h              0          0          0    a,b,c,d,e,f,g                     



important note: the ULTRIX kernel cannot be built with any GNU tools in the path


installing ULTRIX 4.0 RISC

some save sets were unreadable from the distribution tapes. unable to install X11 UDTEXER

ULTRIX 4.0 does not remember the correct ethernet device. Installation assumes that ln0 is correct. Drop to system shell and /etc/ifconfig ln1.

Install software from a remote server using setld:

/etc/setld -l dxsoft:

the colon is necessary!



set default gateway and start services: add to /etc/rc.local:

# prngd
echo 'starting pseudo random number generator' > /dev/console
/usr/local/sbin/prngd /var/run/egd-pool
# SSHd
echo 'starting SSH daemon' > /dev/console
/usr/local/sbin/sshd
# default route
echo 'setting default route' > /dev/console
/etc/route add default 192.168.2.253 1
# start DECnet
# %OSIAPPLSTART%
#
# Start all OSI applications
#
if [ -s /etc/osi_applstartup ]
then
echo "OSI Applications Starting" ; /bin/sh5 /etc/osi_applstartup
fi
# %OSIAPPLEND%

Installing ULTRIX 4.5 on a MicroVAX 3100:

MicroVAX 3100
Microwax: of course!


change /etc/ttys:

add secure to all ttys

flex-2.5.4a

bison-1.28

m4-1.4

make-3.75

sed-3.02

texinfo-4.8

gcc-2.7.2.3

gzip-1.2.4a

make-3.79

bash-2.05b

replace /bin/sh with bash

cp install-sh /usr/local/bin/install from gawk-3.0.6

bzip2-1.0.6

grep-2.3

gcc-2.8.1:

--enable-languages=c,c++,f77 --disable-nls

perl-5.005_04:

use gcc

X11R5

gcc-2.95.3:

use libIO patch