2011-09-20

Solaris

Solaris OS x86-64 and its derivatives seem to mainly use 32-bit applications although the kernel is 64-bit.

Unlike on x86_64, 64-bit SPARC code requires more memory for no performance gain over 32-bit, so it is best only used when the 32-bit address space is insufficient. SPARC userspace is therefore 32-bit by default, even when the hardware and kernel are 64-bit.

"By default, perl-5.6.0 (or later) is compiled as a 32-bit application with largefile and long-long support.", and the Sun docs say this: "The Solaris version of Perl was compiled to include system malloc, 64-bit integer and large file support. In addition, appropriate patches have been applied."

You should have what they promised. A 32-bit application that can do 64-bit integer arithmetic and will not have problems with files over 2 GB in size. But it internally uses 32 bit pointers and so should be linked to the 32-bit library.

Solaris 11 Express 2010.11 64-bit
Perl 5.8.4 ELF 32-bit LSB executable 80386, built for i86pc-solaris-64int
PHP 5.2.12 32-bit

NexentaCore 3.1 (Hardy 8.04/b134+) SunOS Release 5.11 Version NexentaOS_134f 64-bit
Perl 5.8.8 ELF 32-bit LSB executable, Intel 80386, built for i386pc-solaris2.11-thread-multi
PHP 5.2.4-build1 with Susoshin-Patch 0.9.6.2 (cli) ELF 32-bit LSB executable, Intel 80386

GNU/kFreeBSD debian 8.2.1-amd64
Perl 5.12.4 ELF 64-bit LSB executable, x86-64, built for x86_64-kfreebsd-gnu-thread-multi
PHP 5.3.8-1 with Susoshin-Patch (cli) ELF 64-bit LSB executable, x86-64


$large_number 9223372036854775807;var_dump($large_number);                     // int(9223372036854775807)

This above php-script outputs int if php is compiled for 64-bit. If php is 32-bit it outputs float.
The only OS which passed this 64-bit test was Debian/kFreeBSD-amd64.


Some useful Solaris commands:

Find out the kernel architecture in use:
# isainfo -k

Find out a service state:
# svcs -a | grep <service name>

Enable / disable / restart / refresh a service:
# svcadm -v enable/disable/restart/refresh <service name>

Find out disk sizes:
# iostat -E

Find out device names:
# format

Install Apache, MySQL and PHP (default document root is at /var/apache2/2.2/htdocs/):
# pkg install amp
# svcadm enable mysql
# svcadm enable http

Create a large (20 TiB) sparse file and create a loop device to use with ZFS testing:
# dd if=/dev/zero of=<file> bs=1G seek=20480 count=0
# zpool create <pool> `lofiadm -a <file>`

No comments:

Post a Comment