OpenSolaris
Collectives
Discussions
Documentation
Download
Source Browser
Free CD
Log-in
|
en
Community Group on
:
Developer's Reference
>
Introduction
Top Menu
Show
:
Comments
Attachments
History
Information
Print
:
Print
Print preview
Export as PDF
Export as RTF
Export as HTML
Export as XAR
Wiki code for
Introduction
Hide Line numbers
1: = Chapter 1. Introduction 2: 3: Welcome to OpenSolaris and the OS/Net (ON) consolidation! 4: 5: This guide is intended to provide developers with comprehensive information about working with the [[ON>>devref_glossary#HON]] [[consolidation>>devref_glossary#Hconsolidation]]. This chapter provides a brief overview of OpenSolaris and ON, and it provides pointers to additional information. 6: 7: {{toc start=2 depth=4 numbered="false" scope="page"/}} 8: 9: == 1.1 Overview 10: 11: This chapter serves as an introduction both to OpenSolaris and to the guide itself. Because much of the information in the guide will change over time, we always recommend reading the latest version. Section 1.2 Getting Help covers where you can find the current guide and other documents, and additional resources including answers to common questions, ways to contact other developers, and information about the sources. While we strongly recommend reading the parts of this guide that are relevant to your interests, it is not necessary in order to participate. See Section 1.3 Quick Start for ways you can start working with ON right now. Section 1.4 Conventions details the typographic conventions used in the rest of this guide. 12: 13: The OpenSolaris code base is organized as several consolidations. Each consolidation is built as a unit and has its own conventions and processes. The ON consolidation covers the kernel, basic commands and daemons, system libraries, and system headers. Other consolidations include [[SFW>>Project sfwnv.WebHome]], X, and [[OpenSolaris Desktop>>Project jds.WebHome]]. 14: 15: The OpenSolaris distribution is built from this code base. It and other distributions are available from [[http://opensolaris.org/os/downloads/>>Main.downloads]]. 16: 17: == 1.2 Getting Help 18: 19: The OpenSolaris web site offers numerous ways to find answers to your questions. A set of technical and non-technical frequently asked questions is maintained at [[http://opensolaris.org/os/about/faq/>>Main.faq]]. A larger and more in-depth set of technical documentation is maintained at [[http://opensolaris.org/os/community/documentation/>>Community Group documentation.WebHome]]. 20: 21: If your question is not answered in the FAQs or in any of the documentation, or you don’t know where to look, you can ask using the mailing lists of fora. There are many available; for a current list of discussions and to sign up, see [[http://opensolaris.org/os/discussions/>>Main.discussions]]. 22: 23: If you are having difficulty using the OpenSolaris web site itself, please send a message to webmaster@opensolaris.org. Note that this address should not be used for technical questions about OpenSolaris itself. 24: 25: Finally, if you have any questions or comments about this document, please send a message to or join the ON discussion at [[http://mail.opensolaris.org/mailman/listinfo/on-discuss]]. 26: 27: You can always find the latest version of this document at [[http://opensolaris.org/os/community/on/devref_toc>>Community Group on.devref_toc]]. 28: 29: == 1.3 Quick Start 30: 31: This section bypasses most of the important material you’ll find later in this document and makes a lot of assumptions about your development and build environment. The intent is to offer a set of step-by-step instructions that will help you begin development in less than an hour, even if you have no previous Solaris development experience. Although this procedure will work for most people, it cannot work for all. There are dozens of tools and utilities used in developing ON, and most have at least a few options and arguments. This tremendous flexibility exists for a reason: each developer has unique needs. If you encounter difficulty in following these instructions, don’t give up! Each instruction lists the relevant sections you can read to learn more about the commands and procedures used in that step. If all else fails, please see Section 1.2 Getting Help to learn about the many resources available to the ON developer community. 32: 33: === 1.3.1 Example Environment 34: 35: The instructions in the remainder of section 1.3 cover building and installing on both x86 (32-bit only or 64-bit capable; there are no differences) and SPARC environments. They have been tested and verified to work. Because it is impossible to test on every imaginable hardware, software, and policy configuration, our testing was limited to the environments described here. While we expect these instructions will be broadly applicable, the more similar your environment is, the more likely you will be able to use them without modification. 36: 37: ==== 1.3.1.1 x86 Environment 38: 39: We assume that the entire system is dedicated to an OpenSolaris-based distribution, such as Solaris Express. Our test machine is a dual Intel Pentium 4 Xeon 2.8 GHz with hyperthreading enabled, 512MB memory, a standard ATA controller, and a Broadcom 57xx ethernet adapter. The machine has 2 40GB ATA disks, partitioned as follows: 40: 41: Both c0d0p0 and c1d0p0 have a fdisk single partition which assigns the entire disk to Solaris. 42: 43: {{{ 44: 45: c0d0s0 contains a 35GB UFS filesystem mounted on /. 46: c0d0s1 contains a 2GB swap space. 47: c0d0s8 is a 1MB boot slice. 48: 49: }}} 50: 51: {{{ 52: 53: c1d0s0 contains a 37GB UFS filesystem mounted on /aux0. 54: 55: }}} 56: 57: Your system does not need to be identical or even similar to this one in order for it to work; this configuration is merely an example of a supported system. Please see [[Chapter 2 Prerequisites>>devref_2]] for more information about the requirements for installing, developing, and building parts of ON. 58: 59: ==== 1.3.1.2 SPARC Environment 60: 61: Our SPARC test environment is a Sun Fire V210 server with 2 1.0 GHz UltraSPARC-IIIi CPUs and 2 GB memory. The machine has two 36GB SCSI disks, partitioned as follows: 62: 63: {{{ 64: 65: c1t0d0s0 contains a 8GB UFS filesystem mounted on /. 66: c1t0d0s1 contains a 4GB swap space. 67: c1t0d0s3 contains a 22GB UFS filesystem mounted on /export1. 68: 69: }}} 70: 71: {{{ 72: 73: c1t1d0s0 contains a 35GB UFS filesystem mounted on /export2. 74: 75: }}} 76: 77: Your system does not need to be identical or even similar to this one in order for it to work; this configuration is merely an example of a supported system. Please see [[Chapter 2 Prerequisites>>devref_2]] for more information about the requirements for installing, developing, and building ON. 78: 79: === 1.3.2 Installing a Binary Distribution 80: 81: Before building your own source or installing the provided binary archives, you will have to install a complete OpenSolaris-based distribution. This is because you most likely will need drivers, packaging tools, and other components that aren’t in ON. As of this writing, there are two distributions on which you can build ON: the OpenSolaris distribution, and Solaris Express. 82: 83: Build machines are assumed to be running a recent build. For example, if you are building snv_99, your build machine should be running snv_97 or later. This means that your build machine may need to be running a prerelease (aka "preview" or "developer") build. This can be done by upgrading from a previous release or build, or by installing the prerelease build from scratch. Details will depend on which distribution you choose. 84: 85: If you are unsure which distribution to install, the OpenSolaris distribution is generally easier to administer, and it receives more developer attention when there are problems. The chief advantage of Solaris Express is that it is produced for all builds. The OpenSolaris builds currently require more manual activity, so some builds are skipped, particularly right after an OpenSolaris release. Note, though, that this will likely change in the future, as we make the OpenSolaris builds more mechanical. And because Solaris Express will eventually be phased out, there may be a period where some builds are skipped for Solaris Express, too. 86: 87: If you are an ON developer and want to run the very latest bits or have made changes to the kernel or core libraries, you may also need to update your system to a set of binaries newer than the latest available build of your distribution. The process for doing this is called [[BFU>>devref_glossary#HBFU]] and is described in detail below. The BFU process uses CPIO [[archives>>devref_glossary#Harchives]] containing the binaries built from ON; you can download these archives at [[http://opensolaris.org/os/downloads/on/>>downloads.on]] or you can build them yourself (if you have made large changes to the system, you will be install those you built yourself). If your interest in making changes is limited to simple user-level applications, you can usually get by by building those applications individually and copying them over the system’s existing binaries rather than BFUing. 88: 89: Both parts of this process - the initial system install (sometimes referred to as [[suninstall>>devref_glossary#Hsuninstall]] to distinguish it from [[BFU>>devref_glossary#HBFU]] and Cap-Eye-Install) and BFUing are documented here; all users and developers will need to install a binary distribution, while only developers interested in using the very latest ON bits or making significant modifications to core system components will need to read Section 1.3.4 Upgrading to the Latest ON Bits. 90: 91: As new distributions are created which can be used as a base for building and installing OpenSolaris bits, each will have its own section below. If your favorite distribution isn’t mentioned here, please contribute a section explaining how to install it. 92: 93: ==== 1.3.2.1 Installing the OpenSolaris Distribution 94: 95: Installation of the OpenSolaris distribution is significantly simpler than it is for the Solaris Express distribution. Download the ISO image from [[http://opensolaris.org/os/downloads/>>Main.downloads]] and burn it to a CD. This is a LiveCD image, so when you boot it, you’ll have a usable desktop. When you’re ready to install the distribution on your hard disk, start the installer via the desktop icon. The installer will ask a couple questions, then it will install the distribution on the hard disk. 96: 97: Because of size limitations, not all the available packages are on the LiveCD. After the installer has finished and you have rebooted off the hard disk, you can use the Package Manager to install these packages from a network repository. 98: 99: For more detailed installation instructions, follow the "Release Notes" link on the [[downloads page>>Main.downloads]]. 100: 101: ==== 1.3.2.2 Updating the OpenSolaris Distribution 102: 103: The OpenSolaris distribution provides command-line and GUI options for upgrading to the most recent build (or to a new release). The upgrade is done in a clone of the root filesystem, which means that it is easy to back out the upgrade if the new build is unusable for some reason. 104: 105: As mentioned above, not every build is available as an OpenSolaris update. New OpenSolaris updates are announced on the mailing list indiana-discuss@opensolaris.org. Each announcement includes a pointer to the update, update instructions, and release notes for the build. 106: 107: ==== 1.3.2.3 Installing Solaris Express 108: 109: The Solaris installation procedure is well documented at [[http://docs.sun.com/app/docs/coll/1236.1>>http://docs.sun.com/app/docs/coll/1236.1]]. While most of the default options presented in the interactive installation procedure are acceptable for creating a development or build system, you should take note of the following: 110: 111: * Locales are not needed. 112: You do not need to install any locales unless you need them for other reasons. Selecting the C (POSIX) locale as default is recommended. 113: * Follow local policies, 114: Network configuration, time zone, use of IPv6 and Kerberos, name service, and other environment-specific parameters must be set according to local policy. OpenSolaris development is not directly affected by them. 115: * Reserve space for sources (and optionally builds). 116: See [[Section 2.1.1 Development Environment>>devref_2]] for size recommendations. It is recommended that you create a separate local filesystem to store these sources and objects as well as user home directories and other standalone data if appropriate to your configuration; our example system mounts this filesystem at /aux0. See [[Section 2.1 Hardware>>devref_2]] for more detailed information. 117: * Install the Entire Distribution package cluster. 118: If you do not have enough disk space to install the Entire Distribution, you will need to upgrade to a disk at least 9GB in size. You may also be able to install the Developer package metacluster instead, but this has not been tested and may not be sufficient to build successfully. See [[Section 2.2 Operating Environment Packages>>devref_2]] for more information on software requirements. 119: 120: ==== 1.3.2.4 Updating Solaris Express 121: 122: There are two mechanisms for upgrading Solaris Express: Upgrade and Live Upgrade. The advantage of Live Upgrade is that the system remains usable while it is being upgraded, except for a final reboot into the new build. Live Upgrade does require additional disk space, though this isn’t much of an isuse on modern hardware. A more serious problem is that Live Upgrade has been deprecated in favor of the technologies in the OpenSolaris distribution. Bugs, even serious ones, are unlikely to be fixed for [[Nevada>>devref_glossary#HNevada]]. 123: 124: See [[http://docs.sun.com/app/docs/coll/1236.1>>http://docs.sun.com/app/docs/coll/1236.1]] for details on using Upgrade and Live Upgrade. 125: 126: ==== 1.3.2.5 Installing Required Tools 127: 128: There are two sets of tools required to build ON: compilers and ON-specific build tools. See [[Section 2.3 Obtaining and Installing Compilers>>devref_2]] and Section 2.4 Obtaining and Installing Custom Tools for detailed information. 129: 130: Warning: ON switches to a new compiler release only after extensive testing. If you use a compiler other than the one(s) recommended in [[Section 2.3 Obtaining and Installing Compilers>>devref_2]], there is a very good chance that you will run into problems. In particular, the "sunstudio" package in OpenSolaris is unlikely to be usable to build ON. Instead, you should grab a tarball of the tested, installed image. 131: 132: Download the installed image (not the full product) into a scratch area, such as {{code}}/var/tmp{{/code}}. The file is normally called something like {{code}}sunstudio12-DATE.PLATFORM.tar.bz2{{/code}}. Before you start, be sure you have enough free space in {{code}}/opt{{/code}}. The compiler tree takes 890MB for x86 and 1.4GB for SPARC. 133: 134: {{{ 135: 136: $ su 137: Password: 138: # cd /opt/SUNWspro 139: # gzcat /var/tmp/sunstudio12-ii-20081010-sol-x86.tar.gz | tar xf - 140: 141: }}} 142: 143: Note that your filename may differ slightly depending on your platform and future compiler releases. 144: 145: Next, download the ON-specific build tools. This file is normally called {{code}}SUNWonbld-DATE.PLATFORM.tar.bz2{{/code}} and contains a SVR4 package. Assuming you downloaded it to {{code}}/var/tmp{{/code}}, you’ll now want to do: 146: 147: {{{ 148: 149: $ cd /var/tmp 150: $ bzip2 -dc SUNWonbld-DATE.PLATFORM.tar.bz2 | tar xf - 151: $ su 152: Password: 153: # pkgadd -d onbld SUNWonbld 154: 155: }}} 156: 157: Note that if you have installed a previous version of the tools, you will need to use pkgrm(1m) to remove them first. 158: 159: Once you have installed your distribution, the compilers, and ON-specific build tools, you’re ready to build from source or install from binaries. If you’re building from source, continue on to the next section. Otherwise, skip ahead to Section 1.3.4 Upgrading to the Latest ON Bits. 160: 161: === 1.3.3 Building ON from Source 162: 163: In this section we’ll walk through a basic DEBUG build of the ON sources. For this walkthrough, we’ll assume that you’re using a snapshot tarball of the source code, rather than taking a snapshot directly from the [[gate>>devref_glossary#Hgate]]. This is because the source tarball and matching closed binaries have had some testing prior to being posted for download. 164: 165: ==== 1.3.3.1 Creating a Source Workspace 166: 167: Suppose you are using {{code}}/aux0/testws{{/code}} as your [[workspace>>devref_glossary#Hworkspace]]. 168: 169: First, cd to {{code}}/aux0/testws{{/code}} and unpack the sources and closed binaries, e.g., 170: 171: {{{ 172: 173: $ mkdir /aux0/testws 174: $ cd /aux0/testws 175: $ bzip2 -dc on-src-DATE.tar.bz2 | tar xf - 176: $ bzip2 -dc on-closed-bins-DATE.PLATFORM.tar.bz2 | tar xf - 177: 178: }}} 179: 180: The sources will unpack into {{code}}usr/src{{/code}} and the binaries will unpack into {{code}}closed/root_PLATFORM{{/code}} (i.e., {{code}}closed/root_i386{{/code}} or {{code}}closed/root_sparc{{/code}}). 181: 182: === 1.3.3.2 Performing a Basic Build 183: 184: First, Create an environment file to guide tools like nightly(1) and bldenv(1). 185: 186: * Copy in the template environment file 187: Copy {{code}}/aux0/testws/usr/src/tools/env/opensolaris.sh{{/code}} to /aux0/testws. It doesn’t have to go in /aux0/testws, but that’s a convenient place to put it. Nor do you have to keep the name opensolaris.sh, but that’s the name we’ll use in these notes. 188: 189: {{{ 190: $ cp /aux0/testws/usr/src/tools/env/opensolaris.sh /aux0/testws 191: }}} 192: 193: * Make required changes 194: First, add {{code}}/opt/onbld/bin{{/code}} to your PATH environment variable. You may wish to make this change permanent by editing your {{code}}.login{{/code}} or {{code}}.profile{{/code}} files (as appropriate for your shell). 195: Then, using your favorite text editor, make the following changes to {{code}}opensolaris.sh{{/code}}: 196: Change GATE to the name of the top-level directory (e.g., {{code}}testws{{/code}}). 197: Change CODEMGR_WS to the top-level path (e.g., {{code}}/aux0/testws{{/code}}). 198: Change STAFFER to your login. 199: * (optional) Customize VERSION. 200: VERSION is the string that "uname -v" will print. 201: 202: Then, to build a complete set of BFU archives, cd to {{code}}/aux0/testws{{/code}}, utter 203: 204: {{{ 205: 206: $ nightly ./opensolaris.sh & 207: 208: }}} 209: 210: and find something else to work on for a few hours. You can monitor the build’s progress using ptree(1). nightly(1) will send mail to $MAILTO when it has finished. The mail will have an overview of the build results. A copy of the mail text and a more detailed log file will be available in the [[workspace>>devref_glossary#Hworkspace]] (e.g., {{code}}/aux0/testws/log/log.MMDD/nightly.log{{/code}}, where MMDD is the build date). The log file is also available (in a slightly different location) during the build; to monitor the progress of your build in real time, you can do: 211: 212: {{{ 213: 214: $ tail -f /aux0/testws/log/nightly.log 215: 216: }}} 217: 218: The location of the log is controlled by the LOGFILE and ATLOG variables; see nightly(1) for more details. 219: 220: If your build fails, you can correct the problem, then use the ’-i’ option to nightly to run an incremental build, bypassing the initial clobber. See the nightly(1) manual and [[Chapter 4 Building ON>>devref_4]] for more information. 221: 222: To build a specific component, first use bldenv(1) to set up various environment variables, then cd to the subtree that you want to build. For example: 223: 224: {{{ 225: 226: $ cd /aux0/testws 227: $ bldenv ./opensolaris.sh 228: [status information from bldenv] 229: $ cd usr/src/cmd/vi 230: $ dmake all 231: 232: }}} 233: 234: To build the kernel, run dmake(1) from {{code}}usr/src/uts{{/code}}. 235: 236: See [[Chapter 4 Building ON>>devref_4]] for more information on the build process and tools. Once you have successfully completed a build, see [[Chapter 5 Installing and Testing ON>>devref_5]] for more information on what to do with it. 237: 238: === 1.3.4 Upgrading to the Latest ON Bits 239: 240: **WARNING!** The steps described in this section are optional for advanced developers only and are not required to view and edit the sources. Performing this process unnecessarily will result in reduced system manageability and exposes you to the greater risks associated with the use of development software. **If in doubt, SKIP THIS STEP.** See [[Section 5.3 Using BFU to Install ON>>devref_5]] for more details on the risks and benefits of this process. 241: 242: If you wish to build one or more OpenSolaris consolidations, you may in some cases be required to update all or part of your system’s software before doing so. Such requirements are listed for each build in the relevant consolidation’s release notes; in most cases your existing installation will be sufficient to build and use the latest sources. In general, it is both safer and more effective to use the official suninstall, upgrade, or LiveUpgrade process to install a more recent Solaris Express build than to use the BFU process; the official upgrade upgrades all of your system software, while BFU upgrades only a few parts. Unless you need to use the very latest ON bits, you should skip this step. 243: 244: Before proceeding, please read [[Section 5.3 Using BFU to Install ON>>devref_5]] in its entirety. The remainder of this section provides an example usage of bfu(1), but you must understand how BFU works, what BFU conflicts are, and how to resolve them before you can successfully use BFU. It’s impossible to overemphasize this: **You almost certainly want to let acr(1) resolve conflicts for you**. Resolving conflicts by hand can be difficult, time-consuming, and error-prone. Errors in conflict resolution will often leave your machine in a nonworking state. We assume here that you will be resolving conflicts automatically. 245: 246: First, download the BFU archives for your system architecture from [[http://opensolaris.org/os/downloads/on/>>downloads.on]]. Then, unpack the archives into a temporary directory of your choice. In this example, we will use {{code}}/var/tmp/bfu{{/code}} to store the archives and LATEST to be the build you want to install. 247: 248: {{{ 249: 250: # mkdir /var/tmp/bfu 251: # cd /var/tmp/bfu 252: # bzip2 -dc /path/to/opensolaris-bfu-LATEST.sparc.tar.bz2 | tar xf - 253: 254: }}} 255: 256: This will create the directory and {{code}}/var/tmp/bfu/archives-LATEST/sparc{{/code}}. In it will be a set of CPIO archives; these are used by bfu(1) to overwrite your system binaries. Next, exit the window system, log in on the console as root, and issue the command: 257: 258: {{{ 259: 260: # /opt/onbld/bin/bfu /var/tmp/bfu/archives-LATEST/sparc 261: 262: }}} 263: 264: You may see warnings about upgrading non-ON packages; if you have not already done so, you will need to upgrade these before you can safely use BFU. If BFU fails because it tries to upgrade a package that is not available, please check the release notes for your build for information on the cause and solution to the problem. If you don’t find what you need, send a message to opensolaris-help@opensolaris.org describing the messages and the circumstances. 265: 266: After BFU completes, you must resolve conflicts in configuration files The BFU will complete, and if successful will leave you with some warnings and a {{code}}bfu#{{/code}} prompt. **YOU ARE NOT DONE!** You must now resolve conflicts and reboot: 267: 268: {{{ 269: 270: bfu# acr 271: 272: }}} 273: 274: If {{code}}acr{{/code}} fails or prints out warnings or errors, you will need to resolve conflicts manually before rebooting. See [[Section 5.3 Using BFU to Install ON>>devref_5]] for full details. Otherwise, reboot: 275: 276: {{{ 277: 278: bfu# reboot 279: 280: }}} 281: 282: As your system comes up, note the new kernel version. The ON bits on your system have been upgraded. 283: 284: === 1.3.5 Mini-Projects 285: 286: These activities are intended to help developers gain familiarity with the OpenSolaris tools and environment while at the same time making useful contributions toward meeting their own needs and those of the community. We hope that by engaging in some of these mini-projects, new developers will be exposed to OpenSolaris from a variety of directions and will find inspiration for new improvements in the large body of existing work. The project suggestions are roughly ordered from simplest to most complex; less experienced developers should find the first several projects to be a good introduction to OpenSolaris, while more experienced developers may wish to take on some of the more challenging tasks. Of course, all of these are only suggestions; you are always free to work on any part of the system you wish. We ask only that you utilize the mailing lists to coordinate your activities with others to reduce duplication of effort. 287: 288: 1. Start a blog 289: Many developers keep notes, bookmarks, pointers to useful documentation, and other historical materials in a notebook or journal. As you become more familiar with OpenSolaris, your notes and experiences along the way will be valuable to you and to others in the community. You can create your own blog at any of a number of free blogging sites. Suggestions for topics include any observations you make, difficulties you encounter, or ideas you dream up for improving OpenSolaris. Writing about your ideas and experiences in your blog forms a focal point for wider community involvement and discussion, filing of bugs or RFEs, or the creation of a new development project. 290: 1. Fix a simple bug 291: Many bugs we track in OpenSolaris are low-priority issues that have remained unfixed over a long period of time; they are not especially difficult to fix, and their effects tend to be annoying rather than catastrophic. We have also identified bugs which are easily fixed with the ’oss-bite-size’ keyword, so that new developers can obtain up to date starting points. 292: You can view information about these bugs and search for bite-sized bugs at [[http://bugs.opensolaris.org>>http://bugs.opensolaris.org]]. 293: 1. Enhance cstyle(1) 294: Improve the automated C/C++ style checking tools cstyle(1) and hdrchk(1) to implement more of the style guide requirements. For example, cstyle(1) could be improved to detect poor declarations of initialized variables. See [[Section 7.2.1 Automated Style Tools>>devref_7]] for more information. 295: 1. Clean up and modernize code 296: Make more commands and libraries [[lint>>devref_glossary#Hlint]]-clean. Although the entire kernel (uts/...) lints without warnings, many commands and libraries are excluded from linting because they contain lint errors. Correcting these errors is usually not difficult; start by enabling lint (see [[Section 3.3.3 Modifying the ON Build System>>devref_3b]]) and re-linting the command or library in question. In some cases it may be difficult or impossible to fix a particular lint error, and that error must be disabled instead. You can discuss such situations on the relevant mailing list. 297: 1. Simplify Install(1) usage 298: Improve Install(1)’s ’-i’ option to use official platform names in addition to code names when building kernel packages for specific platforms. See [[Section 5.2 Using Cap-Eye-Install to Install Kernels>>devref_5]] for more information. 299: 1. Fix something that bothers you 300: Search for and fix a bug in a program you use frequently, or that you have noticed yourself. You can search for bugs at [[http://bugs.opensolaris.org>>http://bugs.opensolaris.org]]. Many bugs may already be undergoing fixes, so you should avoid duplication of effort by mailing request-sponsor@opensolaris.org when you start working on a bug fix. The sponsors make sure nobody else is working on the bug, and help you make sure you follow the right process to get your fix integrated. 301: 302: == 1.4 Conventions 303: 304: The typographic conventions for this document are not yet finalized. As the document grows and improves it will eventually be typeset in multiple formats, and each will have specific conventions. Information about those conventions goes here. 305: 306: == 1.5 Contributors 307: 308: Many people have contributed to this document. This section contains a partial list of sources used in its compilation. If you are aware of additional sources, please add them here. 309: 310: Note: Some references may be to SWAN-internal URLs. If this content is made public at a later time, these URLs should be updated. In all cases, however, the intent is to document sources as well as possible rather than provide a fully usable bibliography. 311: 312: Adams, Jonathan; Bustos, David; Rhyason, Jeff. "Creating an Install Archive with Install." [[http://on-faq.eng.sun.com/onbld-serve/cache/94.html>>http://on-faq.eng.sun.com/onbld-serve/cache/94.html]]. 313: 314: Unknown. "What are BFU Conflicts and How Do I Resolve Them?" [[http://on-faq.eng.sun.com/onbld-serve/cache/189.html>>http://on-faq.eng.sun.com/onbld-serve/cache/189.html]] 315: 316: Unknown. "BFU." /ws/onnv-gate/public/bfu.README. 317: 318: ARC Chairs, Interface Taxonomy. [[http://opensolaris.org/os/community/arc/policies/interface-taxonomy/>>Community Group arc.interface-taxonomy]]. 319: 320: Miscellaneous Sources: 321: 322: /shared/ON/general_docs/keyword_info.txt, /shared/ON/general_docs/lint_tips.txt, usr/src/uts/README, usr/src/lib/README.Makefiles, /ws/onnv-gate/public/README 323: 324: Ben Rockwood contributed much to early drafts of this document. Alan Burlison added the initial POD tags. Mike Sullivan, Mike Kupfer, John Beck, and Shanon Loveridge provided review comments.
Search
Collectives
Community Group
Academic and Research
Accessibility
Advocacy
Appliances
Approachability
Architecture Process and Tools
BrandZ
Chinese Users
Community Advisory Board
Databases
Desktop
Device Drivers
Distribution
Documentation
DTrace
Emerging Platforms
Fault Management
Games on OpenSolaris
HA Clusters
HPC Developer
Installation and Packaging
Internationalization and Localization
Laptop
Logical Domains
Modular Debugger (MDB)
Networking
NFS
Observability
OpenSolaris Governing Board (OGB)
OpenSolaris Printing
OS/Net (ON)
Performance
Power Management
PowerPC
Security
Service Management Facility (smf(5))
Software Porters
Solaris Volume Manager
Storage
Systems Administration Community Group
Testing
Tools Home
Unix File Systems (UFS)
Website Community
X Window System
Xen
ZFS
Zones
Project
ADSL Modem Enhancement
ARC Process Definition
ARM Platform Port
Automatic Data Migration
BIND Update
Bluetooth Stack & Drivers
Brocade FC HBA - Initiator
Brocade FC HBA - Target
Brussels - unified network link configuration
Caiman, Solaris Install Revisited
Celeste
Český portál
Chime Visualization Tool for DTrace
CIFS client for Solaris
CIFS Server
Clearview: Network Interface Coherence
Cluster Agent: Informix Dynamic Server
Cluster Agent: OpenSolaris Container
Cluster Agent: OpenSolaris xVM
Cluster Agent: Oracle E-Business Suite
Cluster agent: PostgreSQL
Cluster Agent: Samba
Cluster Agent: Tomcat
CMT
Coarse Data Flow Parallelism
Colorado: Open HA Cluster on OpenSolaris
Command Assistant
Common Array Manager
Companion - /opt/sfw: Free and Open Source software
COMSTAR: Common Multiprotocol SCSI Target
Content
Contest
CPU Observability
Credentials Process Groups
Crossbow: Network Virtualization and Resource Control
Crypto KMS Agent Toolkit
Cryptographic Framework
Data Migration Manager
Data Tethers
Deutsches Portal
Device Detection Tool
Device Driver Utility
Device Manager
Device Mapper
Direct Rendering Infrastructure & 3D drivers
DTrace Guide
Duckwater: Simplified name services management
Easy Tools
Emancipation
Emulex Fibre Channel Device Driver
Emulex Advanced Ethernet Device Driver
Enable/Enhance Solaris support for Intel Platform
Enhance the support of USB webcams
Enhanced SMF Profiles
Enhancements for AMD-based Platforms
Erlang DTrace Integration
Ethernet bridge module for Solaris
Evaluate Conary
Events Registry
Ext3 file system support
F/OSS Package Base
Facilitation
Fibre Channel over Ethernet
Fine Grained Access Policy (FGAP)
Fingerprint Authentication
Flexible Mandatory Access Control
Forensic Tools
Fully Open X Project
Fuse on Solaris
gcore
Generic Machine Check Architecture Improvements
Google SOC
HA-JBoss
HA-MySQL
Hadoop Live CD
Hitachi
HoneyComb Fixed Content Storage
HPC Stack
Image Packaging System
Improved Performance MIB
Indiana
Innovation Awards
Input Method
Intel Graphics
Internet Key Exchange, version 2
Interrupt Resource Management
IP Datapath Refactoring
IP over Infiniband
IPsec Tunnel Reform
iSCSI Extensions for Remote DMA (iSER)
iSNS Server
JeOS - Just enough Operating System
JKstat - a java binding for libkstat
Journaled File System (JFS)
K Desktop Environment
Kerberos
Kernel Sockets
Kernel SSL Enhancements
Key Management Framework
Korn Shell 93 integration/migration project
Labeled IPsec
LatencyTOP
Layer 2 Filtering
LDoms Manager
Lending
libMicro - portable microbenchmarks
Link Layer Discovery
Live Media: Technologies for distributions running from CD and other media
Locale Data
lofi compression and cryptography support
lx64 brand
Media Management System
Mega_sas
Mexico
MilaX minimal Live Distribution
MIPS Platform Port
Mozilla DTrace
MRSL.NONsharedDevice
Multi-lingual Glossary
Multi-pathing software (MPxIO)
Multiple disk sector size support
Multiple DOI
Muskoka: An open repository for OpenSolaris technical content
Navigator
Nemo: A Framework for High-Performance Networking
Network Auto-Magic
Network Data Management Protocol
Network MIBs
Network Storage
Network Time Protocol (NTP)
Nevada Globalization
New Design of 4over6 Mechanism Based on OpenSolaris
NFS RDMA transport update and performance analysis
NFS Server in non-Global Zones
NFS version 4.1 pNFS
NFSv4 namespace extensions
Nightingale: Port Songbird to OpenSolaris
NPort ID Virtualization (NPIV)
NUMA
Object Storage Device (OSD) support for Solaris
OHACGE Script Based Plug-in
ON/Nevada (ONNV) Project
Open Development Infrastructure
Open HA Cluster Utilities
Open Sound System
OpenGrok
OpenPegasus CIM Server
OpenRTI
OpenSolaris Busybox
OpenSolaris Desktop
OpenSolaris Hispano
OpenSolaris Security Audit
OpenSolaris support for the QEMU processor emulator: host and guest
PEF: Packet Event Framework
Performance Wrappers
Pkgfactory
Polski Portal
Portail Francophone
Portal Brasil
Portals
Power Management Usability Interfaces
Presto: Automatic Printing Configuration
Printable Many Page Solaris Manuals
Promise SuperTrak RAID HBA Driver
QLogic Converged Network Adapter GLDv3 NIC Driver
Quagga Routing Protocol Suite Integration
RAID Configuration Utility
RBridge (IETF TRILL) support
RDMA Offload Framework
Reno: Login Process Enhancements for Interop
Resource Management
s10brand
SAM/QFS
SCM Migration Project
SCSI RDMA Protocol
SDcard Drivers
Sensor Abstraction Layer
Session Initiation Protocol
SFW
Shell: bourne shell, korn shell, C shell, etc.
Sierra: Intel WiFi Chipsets Support
Simple Panels
SM-HBA Based SAS HBA Management
SMF Documentation
Solaris iSCSI Target
Solaris PowerPC Port
SourceJuicer
Sparks: name service switch/nscd enhancements
Squashfs
Star integration/migration project
Starfish
Starter Kit
Storage Power Management
Sun Security Toolkit
Sun StorageTek Availability Suite
Support for OpenFabrics User Verbs / API on OpenSolaris OS
Support gcc4/GCCfss in Solaris
Suspend/Resume
SVR4 Packaging
Systemz
Tamarack: Removable Media Enhancements in Solaris
Tesla: OpenSolaris Enhanced Power Management
Test Development
Tickless Kernel Architecture
TIPC
Trademarks
Trusted networking interface policy database for Trusted Extensions
Trusted Platform Module support
Use Case
Validated Execution Project
Virtual Console
Virtual Network Machines
Visual Panels
Visualization for HPC
Volo
VRRP: Virtual Router Redundancy Protocol Implementation
VSCAN service
Web Stack
Website
Winchester: Schema mapping and ID mapping for AD Interoperability
Wireless USB Support
Wireless Wide Area Network
X Consolidation
x86 Generic FMA Topology Enumerator
Xen Gate
Xfce: A lightweight desktop environment
ZFS Boot and Install
ZFS on disk encryption support
Zone Manager
Zone Statistics
Русский портал
البوابة العربية
भारतीय पोर्टल
中国门户
日本ポータル
한국 포탈
User Group
Adelaide
Argentina
Arizona
Atlanta
Baltimore-Washington
Bangalore
Bangkok
Bangladesh
Beijing
Bélem
Berlin
Bhimavaram
Bloomington
Campus Ambassadors
Capital Region
Cardiff
Charlotte
Chengdu
Chennai
Chihuahua
Chile
Cleveland
Colombia
Columbus
Connecticut
Cracow
Czech
Dallas/Ft. Worth
Danish
Delaware
Edinburgh
Egypt
Finland
Florida
Front Range
FuZhou
Great Lakes
Greece
Hangzhou
Hawaii
HeFei
Houston
Hyderabad
Indonesia
Irish
Israel
Italian
Jinan
Kabul
Kansas City
Latvia
London
Madurai
Manchester
Mato Grosso
Melbourne
Minas Gerais
Minnesota
Montreal
Moscow
Mumbai
Munich
NEA
Netherlands
New England
New York City
New Zealand
NIT Hamirpur
Noroeste
Oklahoma City
Osnabrück
Peru
Philadelphia
Piaski
Pittsburgh
Porto Alegre
Puget Sound
Pune
Queensland
Research Triangle Park
Romania
Russia
San Antonio
San Diego
San Francisco
São Paulo
Scottish
Serbia
Shanghai
Shenzhen
Silicon Valley
Singapore
Slovak
South African
Southern Connecticut
St. Louis
Sweden
Switzerland
Sydney
Szczecin
Taiwan
Tecum
Thames Valley
Tokyo
Toronto
Trondheim
Tulsa
Turkey
Ukraine
University of Melbourne
Vale do Paraíba
Vancouver
Venezuela
Welsh - Cymru
Wisconsin
Xi'an
Subsites
Code Reviews
Code Repositories
Package Search
Bugster
Bugzilla
Test Machines
Planet
Mailing Lists
Elections & Polls
ARC Case Logs
Source Juicer
Package Factory
User Authentication
Community Group on Pages
CRT
Advocates & Sponsors
Becoming a Sponsor
Becoming a CRT Advocate
Charter
RTI nits to avoid
Sponsor Tasks
Developing Solaris
Quality Death Spiral
Developer's Reference
Introduction
Prerequisites
The Source Tree, part 1
The Source Tree, part 2
Building OpenSolaris
Installing and Testing OpenSolaris
Integration Procedure
Best Practices and Requirements
Glossary
findunref and unreferenced files
ONNV Flag Days, Heads Ups, and Project Integration History
Builds 101-105
Builds 106-110
Builds 111-115
Builds 116-120
Builds 121-125
Builds 126-130
Builds 21-25
Builds 26-30
Builds 31-35
Builds 36-40
Builds 41-45
Builds 46-50
Builds 51-55
Builds 56-60
Builds 61-65
Builds 66-70
Builds 71-75
Builds 76-80
Builds 81-85
Builds 86-90
Builds 91-95
Builds 96-100
Installation (from source) Quickstart
Annotated nightly(1) Mail Example
Currently Known Issues
Putback Logs
Development Process
Schedule
Bourne/Korn Shell Coding Conventions
wx