[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

RE: New FAQ for the LSB



Oops, ah, yeah, I meant to not send it, that's right! 8-)
Sorry, here it is.

-----Original Message-----
From: Dunlap, Randy [mailto:randy.dunlap@intel.com]
Sent: Monday, June 11, 2001 3:47 PM
To: VomLehn, David
Subject: RE: New FAQ for the LSB


I wouldn't call this a long FAQ.  8;)

(no attachment/enclosure)

~Randy

> -----Original Message-----
> From: VomLehn, David [mailto:David.VomLehn@compaq.com]
> Sent: Monday, June 11, 2001 11:21 AM
> To: 'lsb-discuss@lists.linuxbase.org'
> Subject: New FAQ for the LSB
> 
> 
> Enclosed is a new draft of the LSB FAQ. I appreciate any feedback from
> anyone on any section, but please concentrate especially on:
> 
> *	Items in this font color, with a gray background.
> *	Developing question which should be in the FAQ, but aren't.
> 
> It's fairly long as new FAQs go; anyone willing to start at 
> the end and move
> forward is encouraged to do so in order to get the whole 
> thing reviewed.
> 
> I am completely encased in my fire-proof polo shirt and 
> jeans. Fire away!
> --
> David VomLehn	David.VomLehn@Compaq.com	Voice: 512-432-8729	
> 		Fax: 512-432-8037	
> 
> 
> 
> -- 
> To UNSUBSCRIBE, email to lsb-discuss-request@lists.linuxbase.org
> with subject of "unsubscribe". Trouble? Email 
> listmaster@lists.linuxbase.org

Title: Linux Standard Base FAQ

Notes to Reviewers

  1. Items I have questions about appear in the same color and shading as this sentence.
  2. Lacking much of the history of the FSG/LSB efforts, there are areas where I took a stab in the dark. Please be sure to review everything.
  3. I have also tried to make the language consistent throughout the document. Thus, there is no "reference implementation" for the LSB, there is only the "sample implementation".
  4. I have included FAQs for LSB Test Suite and LSB Reference Implementation in this document. They don't seem to duplicate anything I could find on the LSB.org site, but they could be extracted and merged with a separate FAQ list if needed. Note that, if we want to use this as a single FAQ list for now, it should be moved to a higher level in the LSB Web page tree.
  5. I have used the capitalized terms "LSB Specification", "LSB Test Suite", and "LSB Sample Implementation" because we are talking about specific items. If this is adopted, there are other places on the LSB Web site which will also need to be changed.
  6. Is there intended to be an LSB "brand", which is copyrighted by the FSG and only for use on comformant platforms and compliant applications? I can think of several ways to control the use of the brand so that it means something. How do we specify when to re-certify and who does the audit of test results?
  7. Vendors requested that the MIPS ABI contain an API used to return the version number with which the system complies. This was also available as a command, for the use of shell scripts.
  8. Is there a style book available which discusses the format of application/utility names, file names, etc.
  9. Send more Questions. Answers are relatively easy to come by, good questions are hard.
  10. Some links won't work until this is placed in its proper position on www.linuxbase.org as they are relative links. We'll check the links at that time.
  11. Lastly, it takes a great deal of concentration and time to review something like this. Thanks to all who have reviewed it!

Linux Standard Base FAQ

Last revised 5 June 2001

This "Frequently Asked Questions" (FAQ) is for the Linux Standard Base's (LSB) written specification. This FAQ supplements the written specification with interpretations, rationale, and summaries of previous discussions.


Index


How To Contribute

The Linux Standard Base's (LSB) written specification is developed by a set of volunteers. Some have more time and/or experience than others; therefore, there is a core team for continuity and stability.

You can contribute to the LSB Specification in one of three ways:

As always, your constructive contributions are welcome and appreciated!


About the Linux Standard Base (LSB) Organization

  1. Is it the "Linux Standard Base" or the "Linux Standards Base"?

    It is the "Linux Standard Base". As minor a character as "s" is, this has caused significant confusion in the open source community. This effort is to create a standard base set of features for application development, and is not an effort to become the base for all open source standards.

  2. What is the LSB Project?

    From the Linux Standard Base (LSB) Mission Statement:

    "The goal of the Linux Standard Base (LSB) is to develop and promote a set of standards that will increase compatibility among Linux distributions and enable software applications to run on any compliant Linux system. In addition, the LSB will help coordinate efforts to recruit software vendors to port and write products for Linux."

    For more details, see the LSB Mission page.

  3. Who supports the LSB Project?

    The LSB Project is supported by the Free Standards Group (FSG)

  4. What is the structure of the LSB Project?

    As of <date to be determined> the structure is:

    Steering Committee

    • Chairman: George Kraft IV (IBM)
    • Free Standards Group liaisons: Scott McNeil (VA Linux), Daniel Quinlan (Transmeta)

    Technical Sub-Committee Projects

    • LSB Specification

      Technical lead: Stuart Anderson (Metrolink)

    • LSB Test Suite

      Technical lead: Andrew Josey (The Open Group)

    • LSB Sample Implementation

      Technical lead: Ralf Flaxa (LST)

    When and how does the leadership of the LSB Project change?

  5. Isn't the LSB focused only on developing commercial applications?

    Definitely not. When the LSB environment is implemented on a wide range of platforms, all developers will reap the benefit of writing their application without having to handle any special cases for any particular platform. The only benefits which may be special to for-profit companies is that implementing the LSB Specification may increase customer comfort levels and thus sell more platforms and applications.

  6. What are contributors to the LSB Project up to?

    The present focus of the LSB is to produce the initial deliverables and get approval from interested participants in the Linux community. The deliverables are in three main areas:

    1. Creating the written specification of the LSB. This written specification includes the generic LSB plus a processor-specific specification for each supported processor. See: The LSB Specification.
    2. Creating and validating test suites to verify that a given system conforms to the LSB Specification and to verify that an application complies with the LSB Specification. See: The LSB Test Suites.
    3. A sample implementation which is verified to conform to the LSB Specification. See: The LSB Sample Implementation.

    Working groups are formed and dissolved according to the needs of the Project.

  7. Does the LSB Project certify platform and application implementations?

    The LSB provides a set of test suites for application and platform implementations for the purposes of self-certification. Is this true: An application or platform may only claim to be LSB compliant or LSB comformant, respectively, if it passes the applicable portion of current LSB Test Suite as defined in the LSB Test Suite documentation.

  8. What is the process for approving a new version of the LSB?

    Anyone already have a formal write-up I can refer to? The folks working on the FSG standards process may be able to give some assistance here.

  9. Where did the LSB come from?

    The LSB is a project supported under the umbrella of the Free Standards Group (FSG). More information is available at http://www.freestandards.org.

  10. Is the LSB only for Linux systems and applications?

    No. It can be supported with relatively little effort on other platforms using the UNIX operating system and work-alike variants.  It would take more work, but once a processor-specific LSB Specification is available, there is no fundamental constraint to supporting the LSB under most other operating systems.

  11. Why isn't company XYZ participating in the LSB?

    Though there are many companies, organizations and individuals participating the LSB, there are others who have not chosen to contribute it. The LSB is an open organization, but reasons for not participating are many and include:

    • The technology base being used is different from that used in the LSB effort.
    • There are insufficient people/funds/hours in the day to do yet another project.
    • The LSB looks pretty good already, we'll just use what they come up with.

    The only way to be sure of the answer to this question is to contact the company directly.

  12. Where is the LSB organization headed next?

    The specification, tools and sample implementation will continue to be enhanced to meet the growing needs for a common set of interfaces which ensure that an LSB compliant application will run on all LSB conformant platforms using the same microprocessor.

  13. Who contributes to the LSB Project?

    Contributors to the LSB Project are individuals, companies and other organizations. See the Acknowledgements Webpage (Need list of companies, organizations and people to create this.) at the LSB Web site.

  14. What is the difference between a voting and a non-voting member?

    The FSG pages imply that there is such a distinction. Does this apply to the LSB work, and, if so, what can a voting member do that a non-voting member can not do? This seems like quite a minefield.


The LSB Specification

  1. What is the LSB Specification?

    The LSB Specification is a binary compatibility effort. It specifies, in conjunction with other standards documents which it references, the binary environment in which an LSB compliant application executes. This is different from many computer software standards which define only application programming interfaces (APIs). Such standards apply only to building applications, but do not attempt to provide an cross-platform compatibility where each compliant application's binaries will execute without changes.

    Specification of the details required to ensure that applications run on each LSB-conformant platform of the same processor type means that interfaces are defined at a binary level.

  2. Is the LSB Specification a single document?

    A complete LSB Specification consists of the Generic LSB Specification plus the LSB Specification for a particular processor.

  3. Who is the LSB Specification written for?

    The LSB Specification is written for application developers and platform/operating system developers. For the application developer, it provides a set of rules which, when followed, will allow the completed application to run on a variety of platforms. For the platform/operating system developer it provides a minimal set of functionality required to support all applications written to comply to the LSB Specification.

  4. Where can I get a copy of the LSB Specification?

    You can download copies of the current and all previously released version of the LSB Specification at the LSB Written Specification page.

  5. What languages does the LSB Specification support?

    The first release of the LSB supports C and C++ only. These are the most commonly used languages for development in UNIX and UNIX-like system environments and the standards and specifications on which the LSB is based use only C.

  6. Will the LSB Specification support other languages at a later time?

    There are no specific plans to support other languages within the LSB Specification. C and C++ are relatively well specified and the automatic inclusion of libc.so.1 means all definitions required by the C and C++ languages will be provided. There is no such guarantee with other languages, such as FORTRAN or COBOL.

  7. Is the LSB Specification released?

    Not yet. Version 0.9 of the specification is available for public comment.

  8. What's expected to be in the next release of the LSB Specification?

    Good question. Anyone?

    The LSB effort will continue to be driven by the open source community and invites the participation of anyone who wishes to contribute suggestions for future releases. The chances of any particular feature showing up in a particular release is heavily dependent on having enough people to work on it, so it is strongly encouraged that people with suggestions be willing and able to contribute to the creation of the portion of the LSB Specification, test suites and sample implementation in which they are interested. Participation in the broader area of work, such as reviewing pre-release versions of the LSB Specification decreases the chance that a section must be deferred to a later release.

  9. When is the next release?

    No date has yet been set for the next release as it will depend heavily on determining what can be included in a reasonable amount of time. Should we set up a regular release schedule, such as major releases on odd-numbered years, point releases in between? Or just publish a planned schedule on the Web site?

  10. Why isn't processor XYZ included in the LSB?

    The LSB is a cooperative effort and only supports processors if there are volunteers who can do the work to create a new processor-specific LSB Specification. If you want to support a processor not already supported, see if there are already people working on this. (How?) If not, gather up volunteers and do the work. Since several processor-specific efforts exist, there are several models to follow.

  11. What are future plans for the LSB Specification?

    Need either info here or a pointer to the LSB spec itself to do this questions.

  12. Why doesn't the LSB Specification include a complete set of system management features.

    System management is an area under active development at a number of companies. Those areas where there is commonality between various systems are generally included in the LSB Specification. Otherwise, the Specification may include more system management features in future releases.

  13. Why doesn't the LSB Specification address XYZ problem?

    The LSB Specification intentionally excludes many potential areas in order to keep it manageable. As future revisions are released, its coverage is expected to increase.

  14. Why is the LSB Specification so big?

    The LSB's content is driven by experience with other ABI efforts. It is the size it is because this is the minimum feature set required to allow most software developers to develop or port their applications.

  15. Why is the LSB Specification so small?

    This LSB had to provide a minimum of functionality, but has deliberately incorporated the minimum feature set so that it is feasible to use, and, perhaps more difficult, that it can be reviewed and approved in a reasonable amount of time. Also, the LSB does not specify everything from bit order to the appearance of a widget on the screen. The Related Standards section of the LSB Specification lists quite a number of other documents which already provide definitions required by the LSB Specification.

  16. What platforms are certified as conforming with the LSB Specification?

    I expect this to be one of the most asked questions when the LSB Spec is officially announced, we need to start on a process for this quickly.

  17. What applications are certified as complying to the LSB Specification?

    I expect this to be one of the other most asked questions when the LSB Spec is officially announced, we need to start on a process for this quickly.

  18. How do I report defects in the Specification?

    What is the mechanism for this?  For now, post them on the lsb-discuss mailing list and I'll see them. To make double-sure I see it, I'm okay if you want to cc it directly to me, as well--David.VomLehn@Compaq.com.


Developing Applications Which Comply with the LSB Specification

  1. Where do I start?
    1. In order to develop applications which comply with the LSB Specification, you must be familiar with interfaces and utilities which are normally present on UNIX, UNIX-like, Linux or Linux-like systems. The Related Standards section of the LSB Specification lists several sources for this type of information:
      • POSIX.1
      • POSIX.2
      • SUS-XBD
      • SUS-XCU
      • SUS-XNS
      • SUS-XSH
      • SUS-XSH
      • SVID.3
    2. You must also be familiar with the C or C++ programming languages since the LSB Specification and related documentation uses the C language forms of the interfaces.
    3. As you develop your application, be sure to refer to the LSB specification, and its associated documentation, and use only the interfaces, definitions and utilities specified to be part of an LSB conformant platform.
    4. When testing begins for your application, use the lsbappchk utility as a standard part of each testing cycle. This will ensure that no interfaces are being used which are not supported in the LSB Specification.
    5. Before the product ships, be sure to notify TBD that your application complies to the LSB Specification. When your test results have been successfully audited, you will be able to use your Certificate of Compliance with the Linux Standard Base in your documentation, with the application and on sales and marketing materials. Who does auditing, or do we do it at all?
    6. Ship your product. If you ship your product initially without a completed audit of the compliance tests, you will not be able to use the Certificate of Compliance with the Linux Standard Base. You will be able to obtain and use the Certificate of Compliance with the Linux Standard Base even if your product is already shipping.

    For more details see TBD.

  2. How do I port my application to an LSB Specification conformant system?

    Porting your application to an LSB conformant platform is very similar to porting to any other platform, with one key difference. The lsbappchk utility can be used as soon as your application compiles and links to see which, if any, interfaces or definitions are being used which are not part of the LSB Specification. As these issues are addressed, be sure to refer to the LSB Specification to ensure no new non-LSB compliant features are being used and use lsbappchk throughout your testing cycles.

  3. Why can't I link statically with library ABC from Jane User? Why can't I link dynamically with library XYZ from Joe User (no relation)?

    You can, provided the following guidelines are followed:

    • When linked with libraries ABC or XYZ, the only undefined symbols left must be those defined in the LSB Specification. This can be verified by using the lsbappchk utility (Is this the correct utility?) on your application.
    • In addition, dynamic library XYZ must be installed by your application or be supplied by software which your application states is required. Note that the packaging file format specified in the current LSB Specification does not provide a means to detect missing package dependencies. This functionality must be provided in your installation scripts and is dependent on the packages on which your application relies.
  4. I need to use the xyz() function from a library which is not part of the LSB specification--how can I do this?

    You may choose to statically link that library at application link time using the command:

    cc -o myapp ???

    If a dynamically linkable version of the library is available, you can include it with your application. If you install it in a non-standard location, be sure to add its location in your LD_LIBRARY_PATH equivalent.

  5. Do I have to use the GNU C compiler, gcc?

    No. However, whether you use gcc or another compiler, the output must conform to the LSB Specification.

  6. How do I use the LSB-supported SGML/XML framework?

    Good question. XML is not presently part of this.

  7. I don't seem to be using the shared libraries in /lib, what libraries am I using?

    In order to ensure that LSB-compliant applications run as expected, even in the face of changes in the standard libraries, a new library directory was created for their use. This directory is /lib/lsb. On some systems, these may be implemented as links to their /lib equivalents.

  8. Are any products recommended by the LSB Specification?

    No, the LSB Specification is independent of any version of any software product. It may refer to a specific compiler but only as a reference implementation, not as recommendation of that compiler.

  9. Can I use interfaces not specified in the LSB Specification?

    Yes, but your application will no longer be LSB compliant.

  10. Why doesn't an LSB-compliant executable use the standard program interpreter, /lib/ld-linux.so.1?

    LSB-compliant executables use /lib/lsb/ld-lsb.so.1 as the program interpreter because it allows a way to support LSB-specific behavior without affecting any other applications. This is still unsettled, it must be checked before release of the FAQ.

  11. Why are internationalization (I18N) issues not covered in the LSB Specification?

    There is another project handling I18N issues under the FSG, the Free Standards Group Linux Internationalization (Li18nux) Initiative.


Packaging

The Linux Standard Base has established a multi-phase packaging task force.  The Lowest Common Denominator (LCD) Packaging FAQ can be found in a separate document.


Developing Platforms Which Conform to the LSB Specification

  1. Where do I start?
    1. In order to develop platforms which conform to the LSB Specification, you must be familiar with interfaces and utilities which are normally present on UNIX, UNIX-like, Linux or Linux-like systems. The Related Standards section of the LSB Specification lists several sources for this type of information:
      • POSIX.1
      • POSIX.2
      • SUS-XBD
      • SUS-XCU
      • SUS-XNS
      • SUS-XSH
      • SUS-XSH
      • SVID.3
    2. You must also be familiar with the C or C++ programming languages since the LSB Specification and related documentation uses the C language forms of the interfaces.
    3. As you develop your platform, be sure to refer to the LSB specification, and its associated documentation, and provide all of the interfaces, definitions and utilities specified to be part of an LSB conformant platform.
    4. When testing begins for your platform, use the lsbdevchk, lsblibchk and lsbhdrchk utilities as a standard part of each testing cycle. This will ensure that every interfaces required LSB Specification is supplied.
    5. Before the product ships, be sure to notify TBD that your platform conforms to the LSB Specification. When your test results have been successfully audited, you will be able to use your Certificate of Compliance with the Linux Standard Base in your documentation, with the application and on sales and marketing materials. Who does auditing, or do we do it at all?
    6. Ship your product. If you ship your product initially without a completed audit of the compliance tests, you will not be able to use the Certificate of Compliance with the Linux Standard Base. You will be able to obtain and use the Certificate of Compliance with the Linux Standard Base even if your product is already shipping.

    For more details see TBD.

  2. Must I start with a standard Linux distribution?

    This is probably an easier starting point than a different operating system, but it is not required.

  3. Can I supply interfaces not specified in the LSB Specification?

    Yes, and you will probably need to in the area of system management.

  4. Can I link libraries in /lib/lsb to my libraries in /lib.

    Yes, so long as the libraries in /lib provide all of the functionality detailed in the LSB Specification and do not change their behavior from that detailed in the LSB Specification.

  5. Can I link /lib/lsb/ld-lsb.so.1 to /lib/ld-linux.so.1?

    Yes, so long as all the functionality of /lib/lsd/ld-lsb.so.1 is provided and no other work is done to change the execution of a program.

There is much more to be done here.


The LSB Test Suites

  1. What is included in the LSB Test Suites?

    The LSB Test Suites include:

    • lsbappchk
    • lsbdevchk
    • lsblibchk
    • lsbhdrchk

    Are these names right and is the list complete?

  2. In detail, what does lsbappchk do?

    Lsbappchk is meant to be used in your build process where you would normally use the C compiler command, which would usually be "cc" (or "gcc"?). It takes the same flags as the C compiler but instead of producing compiled and/or linked code, it checks that the binary files it produces comply with the LSB Specification.

  3. In detail, what does lsbdevchk do?

    Need info.

  4. In detail, what does lsblibchk do?

    Need info.

  5. In detail, what does lsbhdrchk do?

    Need info.

  6. How do I report defects in the tests?

    What is the mechanism for this?

  7. Where can I get a copy of the test suites?

    The test suite bundles are available on SourceForge at the LSB test suites page.

What other tests are there? What other topics belong here?


The LSB Sample Implementation

  1. What is the LSB Sample Implementation? The LSB Sample Implementation is a complete, working, Linux system containing the interfaces defined in the LSB Specification.

    This is a wild guess, more work needed for this entire section.

  2. Where can I get the Sample Implementation?

    TBD.

  3. If the LSB Specification says that something should work one way, while it works a different way with the Sample Implementation, how do I tell which way is correct?

    The LSB Specification is the ultimate authority on the correct behavior of an LSB conformant system. You should not depend upon a behavior in the Sample Implementation which is not in accordance with that given by the Specification.

  4. Are there interfaces available in the LSB Sample Implementation which are not defined in the LSB?

    Yes. The LSB Specification does not cover all of the interfaces required for system administration. The LSB Sample Implementation includes enough of the system administration interfaces to make it a functioning Linux system.

  5. The LSB Sample Implementation has a bug, where can I report it?

    TBD.

  6. Why not use one of the standard Linux distributions?

    Since the LSB Project provides the Sample Implementation, its release dates and contents can be assured to coincide with each new release of the LSB Specification and LSB Test Suites. It also avoids the overhead of multiple packages which will not contribute to its intended purpose.

I am sure there are many other topics to cover here, but this is to get an idea of the coverage.


Questions Not Yet Categorized

None, at present. The reason for this section is that I can drop question here even while I'm trying to decide whether it goes in an existing section or needs a new section. This will not be present when a final draft is ready.

 


See the LSB's written specification for more detailed and finite definitions.


Reply to: