Contained WithinFind More DocumentationFeatured Support Resources | Download this book in PDF (1069 KB)
General InformationThis section provides general information such as behavior changes in Solaris 10 OS. Single UNIX Specification, Version 3 Introduces ChangesThe Single UNIX Specification, Version 3 (SUSv3) provides updates to the following POSIX operating system interfaces:
The updates include the following changes: ENV Variable in Korn ShellThe environment variable ENV is no longer expanded in a noninteractive Korn shell. This change applies to both /bin/ksh and /usr/xpg4/bin/sh. Compilers and SUSv3 ApplicationsApplications that conform to SUSv3 and other standards should be built by using correct feature test macros, compilers, and options. See the standards(5) man page. file CommandWhen used with the -m option, the file command performs signed comparisons on user-defined magic files. Additionally, in the x86 environment, the command no longer switches multibyte integers to big-endian (SPARC) order before comparing the magic values. See the file(1) and magic(4) man pages. Print Functionssnprintf() and vsnprintf() now return the number of bytes that would be formatted when the input value n=0. See the snprintf(3C) and vsnprintf(3C) man pages. Text EditorThe editor checks for additional conditions before reading the .exrc files in $HOME or the current directory at startup. See the ex(1) and vi(1) man pages. 64-bit SPARC: Time FunctionsIf the input time_t is too large to be represented in a tm struct, the following functions return a null pointer and set errno to EOVERFLOW:
See the gmtime(3C), gmtime_r(3C), localtime(3C), and localtime_r(3C) man pages. Trailing SlashesSUSv3 allows a trailing slash character (/) in a path name only if the path specifies an existing directory or a directory to be created. Utilities in /usr/xpg6/bin and /usr/xpg4/binUtilities in /usr/xpg6/bin and /usr/xpg4/bin have SUSv3-conforming or XPG4-conforming behavior that conflicts with default Solaris behavior. PATH must be properly configured for a user to use a command-line environment that conforms to SUSv3. See the man page for the specific utility for more information. Support for TCP Wrappers is Enabled in sendmailThe utility sendmail has been added to the list of services that support TCP wrappers. The utility's added capability might cause sendmail to reject connections in Solaris 10 systems that were previously configured with very restrictive services. Use the daemon name sendmail to enable use of TCP wrappers. For information about TCP wrapper support, see sendmail Version 8.12 Uses TCP Wrappers in Solaris 10 What’s New. For information about configuring TCP wrappers, refer to the tcpd(1M) and hosts_access(4) man pages packaged in SUNWtcpd. x86: Change to Solaris fdisk IdentifierIn the Solaris 10 release, the Solaris fdisk identifier is set to 0xbf to facilitate the configuration of multiboot environments that include the Linux operating system. In previous Solaris releases, the Solaris fdisk identifier was set to 0x82, the same identifier as the Linux swap partition. The change to the identifier enables you to install the Solaris 10 OS and the Linux operating system without having to modify the Linux swap partition or reinstall the Linux OS. The Solaris OS continues to recognize and support Solaris fdisk with the 0x82 identifier. You can use the fdisk command to switch between the 0x82 identifier and the 0xbf identifier. If you are using Solaris Live Upgrade and need to use the 0x82 identifier, the luactivate command enables you to switch the 0xbf identifier to the 0x82 identifier. For more information, see the fdisk(1M) man page. x86: Application Memory-Allocation Limits on x86 SystemsSolaris applications allocate memory by using functions like malloc(), brk(), or mmap(). The maximum amount of memory an application can allocate is bounded by the size of the user virtual address space. Program text, stack, data, and libraries that are contained within the user virtual address space can further reduce the maximum memory-allocation size. 32-bit Computing EnvironmentIn a 32-bit computing environment, the 32-bit virtual address space is shared between user and kernel. Consequently, the size of the user virtual address space is 4 Gbytes minus the size of the kernel virtual address space. The configuration of the size of the kernel virtual address space depends on the size of physical memory. As the size of physical memory increases, the size of the user address space decreases. For systems with 8 Gbytes of memory, the size of the user address space is approximately 3 Gbytes. If the memory allocation limits are insufficient for an application, two options exist:
64-bit Computing EnvironmentIn the 64-bit computing environment, the virtual address space for 32-bit applications is entirely for the user. Therefore, a 32-bit application can allocate the full 4 Gbytes minus the user address space that is needed for text, stack, and libraries. On some early 64-bit AMD processors, the memory allocation limit can be further reduced by 1 Gbyte. To determine whether your processor is affected, perform the following steps:
A 64-bit application can allocate 250 Tbytes of memory depending on what the application already has in use. x86: Solaris Supports the no execute BitSolaris 10 on x86 supports the no execute (NX) bit in 32-bit and 64-bit modes. The NX bit enables fully implementing the protections that are implied by not using PROT_EXEC in various memory system calls such as the mmap() function. Previously on x86, all mapped memory implicitly had PROT_EXEC set. With Solaris support for the NX bit, virus protection is enhanced. On NX-capable hardware, Solaris OS uses the NX bit by default whenever PROT_EXEC is not specified. Stack segments, however, use PROT_EXEC by default, not the NX bit. The default setting for stack segments can be changed by performing one of the following:
The system administrator can disable all use of the NX bit by using the eeprom command to set enforce-prot-exec to “off”. This variable is provided as a transition workaround for any system with legacy applications that are missing PROT_EXEC. |