LIMITED OFFER
Save 50% on book bundles
Immediately download your ebook while waiting for your print delivery. No promo code needed.
The BeOS is the exciting new operating system designed natively for the Internet and digital media. Programmers are drawn to the BeOS by its many state-of-the-art features, in… Read more
LIMITED OFFER
Immediately download your ebook while waiting for your print delivery. No promo code needed.
The BeOS is the exciting new operating system designed natively for the Internet and digital media. Programmers are drawn to the BeOS by its many state-of-the-art features, including pervasive multithreading, a symmetric multiprocessing architecture, and an integrated multithreaded graphics system. The Be engineering team also built in many UNIX-like capabilities as part of a POSIX toolkit. Best of all, the BeOS runs on a variety of Intel architectures and PowerPC platforms and uses off-the-shelf hardware.
This book explores the BeOS from a POSIX programmer's point of view, providing a comprehensive and practical guide to porting UNIX and other POSIX-based software to the BeOS. BeOS: Porting UNIX Applications will help you move your favorite UNIX software to an environment designed from the ground up for high-performance applications.
Part I Preparation
1. Chapter 1 - Introduction to the Porting Process
1.1. Life Cycle of a Port
1.2. Choosing an Application to Port
1.3. Difficulties with the BeOS
2. Chapter 2 - BeOS Structure
2.1. Basic Structure
2.2. Applying UNIX structure to the BeOS
2.3. Missing links and Other Goodies
3. Chapter 3 - Were not in UNIX Anymore
3.1. The BeOS's Concept of Users
3.2. The BeOS's Concept of Groups
3.3. Effects on Porting
3.4. Processes
4. Chapter 4 - Useful Tools
4.1. bash
4.2. grep
4.3. sed
4.4. less
4.5. touch
4.6. tr
4.7. uniq and sort
4.8. Editors
5. Chapter 5 - Sources
5.1. Getting the Sources
5.2. Working with Archives
5.3. Archive Contents
6. Chapter 6 - Revisions and Backups
6.1. Revision Control System (RCS)
6.2. Concurrent Version System (CVS)
6.3. Using diff for Revisions
6.4. patch
6.5. Backups
Part II The Porting Process
7. Chapter 7 - Getting Started
7.1. Reading the Documentation
7.2. Identifying the Build Type
7.3. Identifying the Build Process
8. Chapter 8 - Configuring the Package
8.1. Preparation
8.2. Expect to Change
8.3. Using #include in the Configuration Process
8.3. Using the #ifdef Macro
9. Chapter 9 - Makefiles
9.1. Principles of a Makefile
9.2. Anatomy of a Makefile
9.3. Execution Sequence
9.4. Coping with Errors
10. Chapter 10 - Configuration Scripts
10.1. Running under the BeOS
10.2. Faking Options
10.3. Manual Adjustments
10.4. Testing the Configuration
10.5. Cheating
11. Chapter 11 - Smart Compilers
11.1. Following the Script
11.2. Faking Options
11.3. Hand Compilation
11.4. Generating a Makefile
12. Chapter 12 - bison and flex
12.1. yacc and bison
12.2. lex and flex
13. Chapter 13 - The Compiler and Linker
13.1. How the Compiler and Linker work
13.2. Preprocessing
13.3. Optimization
13.4. Debugging
13.5. Header Files
13.6. Libraries
13.7. Making Libraries
13.8. Profiling
14. Chapter 14 - The Debugger
14.1. The BeOS Debugger
14.2. The Symbolic Debugger
14.3. Manual Debugging
15. Chapter 15 - Building the Package
15.1. Keeping a Log
15.2. Storing Output
15.3. Compilation Errors
15.4. Compilation Warnings
15.5. Linking Errors
15.6. Installation
15.7. Preparing to Test the Build
15.8. Checking the Created Files
15.9. Creating your Own Harness
15.10.Using the Supplied Harness
15.11.Pointers to Problems
16. Chapter 16 - Overview of BeOS Programming
16.1. Program Styles
16.2. Be Style
16.3. UNIX Style
17. Chapter 17 - POSIX
17.1. What is POSIX
17.2. POSIX and UNIX
17.3. The BeOS and POSIX
17.4. Effects on Porting
18. Chapter 18 - Kernel Support
18.1. Datatypes
18.2. Resource Limits
18.3. Memory Handling
18.4. Users and Groups
18.5. Processes
18.6. Signals
18.7. Interprocess Communication
18.8. System Calls
18.9. Regular Expressions
18.10. Non-local Jumps
18.11. Moving and Copying Memory
18.12. String Handling
18.13. Variable Argument Lists
19. Chapter 19 - Time Support
19.1. Standard Variables and Defines
19.2. Time Zones
19.3. Time Calculations
19.4. Getting the Time
19.5. Setting the Time
19.6. Timers
19.7. System Information
20. Chapter 20 - Terminals and Devices
20.1. Using I/O Devices
20.2. Working with Terminals
20.3. Device Drivers
21. Chapter 21 - Files and Directories
21.1. General Functions
21.2. Streams
21.3. UNIX File Descriptors
21.4. Utility Functions
21.5. File Systems
21.6. select and poll
22. Chapter 22 - Networking
22.1. Sockets
22.2. Utility Functions
22.3. Using select
22.4. Remote Procedure Calls (RPCs)
23. Chapter 23 - Summary
24. Appendix A - Resources
24.1. FTP
24.2. Web Sites
24.3. Mailing Lists and
Newsgroups
24.4. CD-ROMs
24.5. Compatibility and Utility Software
25. Appendix B - Releasing the Software
25.1. Checking the Compilation
25.2. Packaging
25.3. Adding a License
25.4. Distribution
25.5. Contacting the Author
MB
Martin C. Brown is one of the most active programmers outside of Be porting UNIX applications to the BeOS. He has worked with most varieties of UNIX, Mac, and Windows systems, doing everything from software development to system administration. When he’s not on the job as an IT manager, he is enthusiastically involved in the Be development effort.