MachTen F.A.Q


SEARCH : Home : Unix Flavors : MachTen

MachTen & CodeBuilder FAQ

Version 1.3
7 January 1997
This collection of frequently asked questions (FAQ) provides brief answers to many common questions about Tenon's MachTen and CodeBuilder software. Please check here for answers before posting a question to the MachTen newsgroup (comp.unix.machten) or before sending email to machten@tenon.com.

A. General Questions:
general description of MachTen and CodeBuilder; versions; platforms supported

B. Communications:
interoperability and internetworking

C. Software Development:
tools and porting techniques

D. The X Window System:
understanding and using X

E. File Handling Management:
Macintosh file system vs. a UNIX file system

F. Peripherals and Devices:
third-party devices and compatibility issues

G. Technical MachTen:
common technical support questions

We try to make as much information as possible available through our web site at http://www.tenon.com. If you have trouble finding the information you need there, please let us know.


A. General Questions:

A1. What is MachTen?
A2. What is CodeBuilder?
A3. What is the difference between Power MachTen and CodeBuilder?
A4. Why did Tenon develop MachTen?
A5. What are the main reasons for marriage of UNIX and Macintosh?
A6. How will Apple's acquistion of NeXT affect Tenon?
A7. What are some of the typical applications for MachTen?
A8. Is there anything that MachTen won't do that another machine running BSD UNIX can do?
A9. Are there any other UNIX packages available for Macs and Power Macs?
A10. How can MachTen be considered a real UNIX operating system when it is implemented on top of MacOS?
A11. What models of Macintosh does MachTen run on?
A12. What models of Macintosh does CodeBuilder run on?
A13. What add-on hardware is supported?
A14. What are the differences between Professional MachTen and Power MachTen?
A15. How do I decide what version of MachTen I need?
A16. What are MachTen's memory and disk requirements?
A17. Does MachTen support virtual memory?
A18. Is there any way I can have MachTen start up every time my Mac boots?
A19. Does the "xxx" software package run on top of MachTen?
A20. What commercial applications run on MachTen?
A21. As UNIX is so file I/O intensive, what kind of performance can MachTen have if Apple's file system is so slow?
A22. Can more than one user access the MachTen host system?
A23. Can users without a UNIX account use the Mac solely as a Mac?
A24. What is the visual appearance of MachTen/CodeBuilder?
A25. Can you start Mac applications both under Finder and under the UNIX shell?
A26. What Mac applications run on MachTen?
A27. Can I get a demo of MachTen?
A28. Does Tenon offer educational discounts?

A1. What is MachTen?

MachTen is a Berkeley UNIX operating system with a Carnegie-Mellon Mach kernel. It runs as an application on the Macintosh Operating System (MacOS). The MachTen UNIX kernel supports a standard UNIX applications environment which in turn supports hundreds of standard UNIX applications. The UNIX operating system runs in concert with the Macintosh operating system. When MachTen is running, you still have access to the Macintosh Finder desktop and Macintosh applications, such as a Macintosh spreadsheet or desk accessory application.

Even though MachTen gives the appearance of being just another Macintosh application, its operation is more like that of a co-resident operating system. MachTen and MacOS share the processor -- when MachTen has control, it pre-emptively multitasks the UNIX applications; when MacOS has control, it runs the Mac applications using its cooperative sharing.

Since MachTen runs on top of MacOS, there is no need to partition the hard drive or to install separate MachTen-specific device drivers. MachTen maps the UNIX file system to the MacOS file system and uses the MacOS device drivers. This means that there is a single, consistent file system and that third party devices, such as network controller boards, automatically run with MachTen.

MachTen is a full-fledged operating system that, for portability reasons, uses as much of the device driver software that's available in the Macintosh. Where necessary, it will operate directly with the hardware.

A2. What is CodeBuilder?

CodeBuilder is a powerful and unique Macintosh software development tool for porting existing applications or developing new, advanced applications on Power Macs and Power Mac clones.

CodeBuilder is a Power Macintosh application that includes a complete suite of C, C++, Objective-C, Java, Ada, and Fortran development tools. CodeBuilder can be used in combination with standard Macintosh editors and compilers to develop Macintosh applications, X applications, and NeXT/UNIX applications.

CodeBuilder gives developers the ability to create an application with a single source base not only for Power Macs under a native Apple operating system, but also for Silicon Graphics, SUN, NeXT, or HP environments. CodeBuilder gives Apple developers the freedom to take advantage of time-tested UNIX development tools and to explore Objective-C and Ada, without giving up the features of their favorite Macintosh editors and compilers. Because CodeBuilder uses standard Macintosh binary formats, you can use Macintosh debuggers and even combine Macintosh compiler output with CodeBuilder's UNIX compiler output. CodeBuilder is a new standard in PowerPC software development.

A3. What is the difference between Power MachTen and CodeBuilder?

MachTen is a full-fledged UNIX system that runs over the MacOS. CodeBuilder has a MachTen kernel and many of the UNIX features, but lacks MachTen's networking. CodeBuilder includes many tools available to MachTen owners only on the Ported Apps Vol. 2 CD.

A4. Why did Tenon develop MachTen?

Tenon's goal was to "unlock" the processing power of personal computers and put them on an equal footing with workstations, minis, and mainframes.

On one hand, MachTen brings UNIX applications and technology to the Macintosh desktop; on the other hand, it provides a vehicle for Macintosh users to access those larger functional capabilities and communications protocols that are fundamentally developed by the workstation community. These industry standard tools can be brought to the desktop where Macintosh applications are able to take advantage of them. It is a dual-directional approach.

MachTen makes client/server computing available for everyone by lowering the price point of this capability by an order of magnitude. When Apple built the Macintosh, they called it a computer for "the rest of us". MachTen is UNIX for "the rest of us".

A5. What are the main reasons for marriage of UNIX and Macintosh?

The Macintosh is the most user-friendly computer. Windows is trying to achieve the friendliness of the Mac. UNIX is the richest, most popular software development environment, and is becoming a universally accepted standard for distributed computing. It has an abundant set of communications protocols and file sharing software - Telnet, r-series, email, file transfer, NFS client and server. MachTen makes that plentiful environment available on a Macintosh.

The combination of Macintosh and UNIX has been enthusiastically embraced by both Macintosh and UNIX lovers.

A6. How will Apple's acquistion of NeXT affect Tenon?

Apple's acquistion of NeXT Corporation validates Tenon's choice of the Carnegie Mellon Mach kernel coupled with a Berkeley UNIX as a way to extend and enhance MacOS. Tenon has been shipping the exact same variant of UNIX chosen by Steve Jobs for the foundation of its MachTen UNIX that runs on every single Macintosh and Power Mac.

We think that MachTen could accelerate Apple's porting efforts, since our software has already been made extremely portable by removing the UNIX/Mach hardware dependencies. Interfacing our software to the Copland Nu kernel and then adding the advanced NeXT tools on top may be the fastest way for Apple to get NeXT OS on Power Macs. Tenon's development organization includes the world's largest collection of engineers with Mach/MacOS/PPC experience.

Our UNIX software development environment generates MacOS (PEF) binaries from UNIX sources. In addition to C and C++ compilers for the 68K and PowerMac, our development environment includes essential UNIX standard tools, such as make, lex, and yacc. We have used these tools to port millions of lines of UNIX system source and hundreds of UNIX application programs to both 68K Macs and Power Macs. The advanced NeXT development tools (and even applications, such as WebObjects) could easily be ported to MachTen using these tools. This done, MachTen could give developers an early platform for porting applications.

By incorporating the 68K version of our software into their strategy, Apple could make the integrated NeXT system backward compatible to all M68K Macintoshes. By doing this, they might actually be able to bring the 68K port out ahead of the PowerMac port.

Tenon's software already supports AfterStep (a NeXT-like X Window manager) and soon will support Objective C. We are also looking into porting GNUStep (the FSF version of NeXTStep.)

A7. What are some of the typical applications for MachTen?

MachTen opens up new markets for Apple to offer Macs and Power Macs as inexpensive UNIX and X software development platforms. It also lets users integrate every Macintosh in the environment with all the other processors in the enterprise -- it doesn't even have to be UNIX-based -- anything TCP/IP-based can interoperate with a Macintosh. On the one hand, MachTen is an inexpensive UNIX development environment; on the other hand, it is an excellent connectivity tool for the Macintosh. MachTen can turn a Macintosh into a complete Internet server or a high-performance X terminal.

A8. Is there anything that MachTen won't do that another machine running BSD UNIX can do?

MachTen is a fully functional BSD system. Tenon has added a few MachTen-specific utilities; e.g.: it can change UNIX text into text recognizable by Macintosh applications and can cope with Apple Single/Double file formats. In addition, a Macintosh-style MachTen Control Panel lets you easily modify networking addresses and other system variables that would ordinarily require editing UNIX configuration files. So, in some sense, it is a friendlier UNIX. But, by and large, there are no surprises. MachTen is exactly what you would expect to find on any Berkeley UNIX system.

A9. Are there any other UNIX packages available for Macs and Power Macs?

Apple developed a commercial UNIX (A/UX) that ran on a subset of Macs. Apple no longer supports or sells A/UX, which was an older version of UNIX -- SystemV, version 2 -- and was expensive in terms of memory and required disk space. MachTen is a more compact UNIX that can run on all Macs and all Power Macs. A/UX was implemented on the bare Macintosh hardware, which required Apple to port A/UX to new platforms on a machine-by-machine basis. Unlike A/UX, MachTen sits on top of the MacOS, which means that you don't need special device drivers and you don't have to partition your disk.

Apple recently distributed a beta version of MkLinux. MkLinux is a public domain version of Linux that has been ported to a few Power Mac platforms (Nu-bus based Power Macs). MkLinux, much like A/UX, runs on the bare Power Mac hardware. Users must use MkLinux-specific device drivers and cannot run Mac applications while MkLinux is running. The current version of MkLinux is Developer Release 2.

A10. How can MachTen be considered a real UNIX operating system when it is implemented on top of MacOS?

Even though MachTen gives the appearance of being just another Macintosh application, MachTen and MacOS operate very much like co-resident operating systems, sharing the processor. When MachTen has control, it pre-emptively multitasks UNIX applications; when MacOS has control, it runs the Macintosh applications using its cooperative sharing. There is a slide bar Control Panel that lets you prioritize UNIX processing over Macintosh processing.

A11. What models of Macintosh does MachTen run on?

MachTen is designed to run on all modern Macs, from the Classic to the Quadra AV machines, all PowerBooks and Duos, and all Power Macs, Power Mac clones, and PowerPC PowerBooks.

A12. What models of Macintosh does CodeBuilder run on?

CodeBuilder is designed to run on all Power Macs, Power Mac clones and PowerPC PowerBooks.

A13. What add-on hardware is supported?

Because MachTen sits on top of the Macintosh file system and interoperates with the Finder, all add-on hardware should work under MachTen. MachTen has been used with Syquest drives, Bernoulli drives, Zip drives, accelerators, multiport serial cards, ethernet cards (NuBus, SCSI, PCI) and video cards, among others. In cases where MachTen takes control of the hardware (e.g., to implement virtual memory), there could be incompatibilities.

A14. What are the differences between Professional MachTen and Power MachTen?

Both Professional MachTen and Power MachTen are complete UNIX operating systems with identical UNIX commands and utilities and identical UNIX communications that include an enhanced TCP protocol stack and UNIX file sharing and printer sharing. Professional MachTen is based on BSD 4.3 Berkeley UNIX; Power MachTen is based on BSD Berkeley 4.4. Both Professional MachTen and Power MachTen include an X server and an X client execution and development environment.

Professional MachTen supports UNIX/Mach virtual memory. In other words, Professional MachTen completely takes over the memory management functions from MacOS to page both UNIX and Macintosh applications from memory to disk. Since MachTen's paging algorithms are more sophisticated than those of MacOS, Professional MachTen's VM gives improved performance under low memory conditions. In addition, Professional MachTen runs UNIX applications in protected memory space.

Power MachTen, the native Power PC version of MachTen, has all the features of Professional MachTen (except for protected and virtual memory), and all the features of MachTen X Window Software. In addition, Power MachTen has some unique features, such as support for shared memory, shared libraries, integrated Macintosh and UNIX development environment, and support for UNIX hard links.

A15. How do I decide what version of MachTen I need?

For PowerPC-based Macs (Power Macs), Power MachTen is your ONLY choice.

Is it possible to upgrade from Professional MachTen to Power MachTen?

If you have continuous coverage under a MachTen Maintenance plan, you can always request Power PC native versions of MachTen instead of 68K versions. Without Maintenance, you can explicitly purchase a PPC upgrade.

A16. What are MachTen's memory and disk requirements?

MachTen is one of the most compact UNIX operating systems available. The MachTen 68K application itself consumes 2MB in memory. Since System 7 takes roughly 2MB RAM, you can see that you need more than 4MB RAM in order to have enough memory available for UNIX and Mac applications. A total of 8MB RAM is recommended for Professional MachTen, especially if you are doing software development or running X. The Power MachTen application consumes about 3MB RAM; a total of 16MB RAM is recommendedfor Power MachTen.

The hard disk requirements can vary from 15MB to 90MB, depending upon whether you install the development tools and the X Window software components of MachTen.

A17. Does MachTen support virtual memory?

On 68030 and 68040 machines, Professional MachTen takes over the memory management hardware to provide demand-paged virtual memory and memory protection.

Power MachTen does not yet support UNIX virtual memory nor memory protection. Tenon designed Power MachTen to take advantage of Copland's protected threads. Now that Copland will not be available for several more years, Tenon plans to implement VM and memory protection for Power MachTen.

Power MachTen can, of course, be used with MacOS VM or RAMDoubler.

A18. Is there any way I can have MachTen start up every time my Mac boots?

An alias to MachTen can be installed in the Startup Items folder in your System Folder. This will start MachTen every time your Mac boots. You can even run Power MachTen without the Finder.

MachTen can also be configured to boot instead of the Finder. This is most beneficial if a Macintosh is to be used fundamentally as a UNIX system and few, if any, desktop operations are needed. Running MachTen as the Finder saves precious RAM and processing resources. To maintain the Desktop, Finder must assume control of the system every few seconds in order to update folder file information, handle changes in the volume structure, and perform general bookkeeping for the Desktop. It is possible to run MachTen without Finder and, if needed, start the Finder from MachTen.

While this idea is interesting and has a certain academic quality to it (in that you are able to get the most possible from your Macintosh for your UNIX processing), it may only have appeal for more vigorous UNIX enthusiasts. This whole mechanism becomes much more interesting, however, if a Macintosh is to be used in an environment where access to the Macintosh desktop and its MachTen files need to be controlled. Running MachTen as the Finder forces every user to log in in the traditional UNIX manner. To configure your Macintosh to start MachTen instead of Finder upon power ON, please see the Tenon Technical Note, "MachTen as Finder".

A19. Does the "xxx" software package run on top of MachTen?

Most UNIX software packages can be ported to MachTen in a straightforward way. MachTen is a "vanilla" Berkeley system, with standard BSD libraries. To run MachTen on systems with small amounts of memory and without UNIX virtual memory, it is sometimes necessary to avoid large automatic variables by using malloc/free.

For the 68K version of MachTen, a Ported Application CD is available with sources and MachTen executables for hundreds of public domain applications. This Ported Application CD is included when you purchase Professional MachTen 2.3. A Ported Application CD with native PPC applications is also available for Power MachTen.

A20. What commercial applications run on MachTen?

Until now there hasn't been a real incentive for vendors to port their applications to MachTen, since they were already directing their efforts toward Apple's A/UX. Now that Apple has dropped support for A/UX, and their Power Macintosh UNIX plans have been made more complicated by CHRP, MachTen has been the only UNIX for Power Macintosh. This unique position makes MachTen an attractive platform for commercial vendor ports. Since MachTen is very standard UNIX, porting applications is very straightforward.

A21. As UNIX is so file I/O intensive, what kind of performance can MachTen have if Apple's file system is so slow?

Naturally, having a fast UNIX file system on the bare hardware would give better performance. But having lots of memory and making sure that you have a fast hard disk and a fast software disk driver go a long way to ensuring good performance. Tenon plans to extend MachTen with a native UNIX file system in the future.

A22. Can more than one user access the MachTen host system?

Yes. MachTen turns your Macintosh into a multitasking, multiuser environment.

A23. Can users without a UNIX account use the Mac solely as a Mac?

When MachTen is running, users have full access to Macintosh Finder and could simply run Macintosh programs. If MachTen is installed on a machine that will be shared by users who do not want to get involved with UNIX, they can simply use the Macintosh as a normal Mac, and not start up the MachTen application. On the other hand, if you always want to use MachTen, you can set your machine up so that the MachTen application comes on automatically when the Mac is powered up. Even with this setup, you can easily toggle from Mac applications to UNIX applications.

A24. What is the visual appearance of MachTen/CodeBuilder?

A Macintosh running MachTen or CodeBuilder appears simultaneously as a traditional UNIX system with multiple windows and a Berkeley command line interface, and as a traditional Macintosh system with a Finder interface. If you pull down the System 7 application menu when MachTen or CodeBuilder is running, you can click on Finder, any Macintosh application, or MachTen/CodeBuilder. If X is running, you have an X desktop as well which you can customize with OpenLook, Motif and even AfterStep window managers. You can easily toggle back and forth between Finder, Mac apps, the UNIX desktop and the X desktop.

A25. Can you start Mac applications both under Finder and under the UNIX shell?

Yes. Under the UNIX shell you simply type (with * if necessary) the data file or application name, followed by a CR. Since most users continue to use Finder in combination with MachTen, the typical way to start a Mac app is by double-clicking. If you double-click a UNIX application when MachTen is already running, it will bring the MachTen application to the front; otherwise, it will start MachTen. Starting Mac apps in Power MachTen is a little more complicated to set up.

A26. What Mac applications run on MachTen?

Virtually all Macintosh applications work with MachTen. Occasionally an init or system extension will conflict with MachTen. Tenon's policy is to work toward eliminating incompatibilities if any are found.

When MacintoshTCP applications run with MachTen, they automatically use Tenon's TCP stack. If you want to run Macintosh Internet servers with MachTen, such as ftpd, you must make sure that the equivalent UNIX server daemon is not listening on the same port.

A27. Can I get a demo of MachTen?

Unfortunately we don't make one, although we do have the next best thing -- a 30-day trial period. If you aren't satisfied, you can contact us at any time during that period to ask for a full refund . If, during your 30-day trial period, you discover that you haven't had enough time to fully configure MachTen, you can contact us and request a trial-period extension. We give those out rather liberally. Contact sales@tenon.com to purchase.

A28. Does Tenon offer educational discounts?

Yes. Contact sales@tenon.com for more information.


B. Communications:

B1. Does MachTen interoperate with other versions of UNIX?
B2. What are some of MachTen's communications features that allow the Macintosh to interoperate with other UNIX workstations?
B3. What networking support does MachTen provide?
B4. How do I configure MachTen for PPP?
B5. Why use MachTen's TCP stack instead of MacTCP?
B6. What are some of the features of Tenon's TCP stack that MacTCP lacks?
B7. How will I run my MacTCP applications?
B8. Is MachTen compatible with OpenTransport?
B9. What Internet services does MachTen provide?
B10. Do I need to have MachTen on each client machine?
B11. How does MachTen's Web server compare to using WebStar?
B12. If I create a Web server using MachTen, what tools are available for creating Web pages?
B13. What tools are available for browsing a MachTen Web server?

B1. Does MachTen interoperate with other versions of UNIX?

Yes, MachTen can network with all standard TCP/IP implementations. For example, you can exchange tar-format floppies or mount NFS volumes with other UNIX machines such as SCO, A/UX, SUN, Solaris, HP, DEC, IBM 's AIX and NeXT, among others.

B2. What are some of MachTen's communications features that allow the Macintosh to interoperate with other UNIX workstations?

UNIX has a very rich set of communications protocols and file sharing software --Telnet, r-series, electronic mail, file transfer, and client and server NFS. MachTen provides this full complement of protocols for the Macintosh. With MachTen on your Macintosh, it is possible, for example, to store all Macintosh applications on the hard disk of a remote UNIX workstation and mount those applications on your Mac desktop with NFS. With MachTen, you can even mount Apple Share volumes on your Macintosh and then export those volumes using NFS.

MachTen has line printer spooling capabilities, so it can send printer output to the printer of a remote UNIX workstation. Any Macintosh on your LAN can send its printer output to a MachTen Macintosh, and MachTen can subsequently spool that output to any printer in your UNIX environment. Likewise, UNIX workstations can spool printer output to a MachTen Macintosh and have that output printed on a Macintosh LaserWriter.

B3. What networking support does MachTen provide?

MachTen includes a full TCP suite of protocols, including telnet, smtp and ftp. In addition, it includes all the standard UNIX communications, such as the Berkeley r-series and both client and server NFS. MachTen also includes domain name service (DNS), IP forwarding, and a built-in Web server that supports multihoming. MachTen works over LocalTalk, ethernet and TokenTalk, and can route between these networks.

For serial line connectivity, tip, cu, UUCP, SLIP and PPP are provided. MachTen makes use of the serial port portion of the Macintosh Communications Toolbox (CTB) if installed; otherwise, it controls the serial ports directly.

Using AppleTalk Remote, it is possible to dial into your AppleTalk environment and then use MachTen TCP communications across your AppleTalk networks.

B4. How do I configure MachTen for PPP?

We suggest reading:

Using PPP with MachTen
Crafting An Internet Server With MachTen: A Step-By-Step Guide Part I by LT Richard Miller
Crafting An Internet Server With MachTen: A Step-By-Step Guide - Part II

B5. Why use MachTen's TCP stack instead of MacTCP?

MachTen's TCP stack is from the Berkeley Reno sources and includes all the latest protocol improvements, such as Van Jacobsen's performance enhancements. This TCP stack is more robust, better performing and more fully-featured than MacTCP. MachTen provides interoperability with applications that rely on MacTCP, such as MacX and Eudora, by trapping MacTCP internals with Tenon's mactcp daemon. This means that MacTCP applications will automatically use MachTen's TCP stack when MachTen is running.

B6. What are some of the features of Tenon's TCP stack that MacTCP lacks? B7. How will I run my MacTCP applications?

If you start a MacTCP application (such as Eudora, Gopher, or Newswatcher) while MachTen is running, that application will automatically run using Tenon's TCP stack. If you attempt to run that application without MachTen running, the application will simply default to using MacTCP.

When you install MachTen, the MacTCP configuration parameters will automatically appear in the MachTen Networking Control Panel, so you don't have to re-enter your Internet addressing information. It is not necessary to deinstall MacTCP, since it will very compatibly coexist with MachTen.

B8. Is MachTen compatible with OpenTransport?

Power MachTen will run on machines with OpenTransport, such as the Power Macintosh 9500. Tenon's TCP stack is interfaced to the PPC native OpenTransport ethernet driver. OpenTransport and Tenon's TCP stack can run simultaneously, as long as they are on different physical interfaces. Since both Tenon's TCP stack and OpenTransport support MacTCP applications, you can configure your MacTCP apps to use either stack. As soon as the performance and feature set of OpenTransport are roughly equivalent to Tenon's TCP stack, Tenon will fully adopt OpenTransport.

B9. What Internet services does MachTen provide?

MachTen includes a complete TCP protocol stack (Telnet, FTP, SMTP, TCP, IP) and all the standard Internet services, such as domain name service (DNS), Post Office Protocol (POP) for a POP mail service, serial line IP (SLIP) and point-to-point protocol (PPP). MachTen also includes the NCSA httpd daemon with a pre-configured sample 'home' page.

A MachTen Macintosh can easily be set up as a full Internet host, configured as an IP forwarder, a domain name server, a POP mail server, and a Web server.

Many additional Internet server software daemons, such as Gopher and WAIS, have been ported to Professional MachTen and are available for 68030 and 68040 platforms. These daemons are available on a Ported Applications CD-ROM.

B10. Do I need to have MachTen on each client machine?

MachTen is a complete UNIX operating system, and, as such, includes both client and server components for each Internet service. Therefore, you could use MachTen on every Macintosh. Alternatively, for the client machines, you could simply use MacTCP with your favorite Macintosh client software, such as Eudora, Fetch or NCSA Telnet. MachTen can provide Internet services for any Mac or PC that supports TCP.

B11. How does MachTen's Web server compare to using WebStar?

MachTen includes the NCSA httpd daemon with multihomed extensions. Using MachTen as a Web server lets you set up multiple Web home pages, each with a unique URL of the type: http://www.companyname.com. WebStar (formerly MacHTTP) cannot support this style of multihomed Web pages.

In addition, Tenon's Web server is running in a pre-emptive, multitasking environment, which may be more suited than MacOS to supporting multiple, simultaneous World Wide Web accesses. Furthermore, if you run your Web service using Professional MachTen, the httpd daemon is running in protected memory space.

On the other hand, WebStar has some advantages, namely the ability to plug directly into a Macintosh supported database (such as the Butler database), and the ability to use Apple cgi scripts. For this reason, many customers are using WebStar and MachTen in combination.

B12. If I create a Web server using MachTen, what tools are available for creating Web pages?

Since MachTen is UNIX, any of the standard HyperText Markup Language (HTML) tools that are available under UNIX can be used. MachTen includes BBEdit 3.5, which has an HTML editor. In addition, you can use any Macintosh-based Web authoring tool, such as the new PageMill created by Ceneca and now available from Adobe.

B13. What tools are available for browsing a MachTen Web server?

You can use any browser (Mac, PC or UNIX based) from any machine to view a MachTen Web server. For server development, of course, you should have a local Macintosh browser, such as NCSA Mosaic (for MacOS or X), Netscape, etc. Mosaic for X has been ported to MachTen and can run on any Macintosh with MachTen X Window Software. Running any browser on a MachTen Macintosh will let you display in loopback mode any Web pages that you are developing. At the same time, you could also be 'surfing' the Internet and checking out potential Web links for the pages your are creating.


C. Software Development:

C1. What software development tools are available with MachTen?
C2. What porting issues will I encounter when recompiling programs under MachTen?
C3. What version of MachTen is recommended for software development?
C4. Will other Macs be able to run my applications without running CodeBuilder?
C5. How much source code and documentation does CodeBuilder include?
C6. Does MachTen support hard links?


C1. What software development tools are available with MachTen?

Personal MachTen includes a C compiler, assembler, libraries, loader, and all the standard UNIX tools, such as lex and yacc.

Professional MachTen includes C, C++, a source debugger, and Mach C threads.

Power MachTen includes C, C++, g77 (gnu fortran 77), and a source debugger.

In addition, the following tools are included in all versions of MachTen: C2. What porting issues will I encounter when recompiling programs under MachTen?

In general, since MachTen is a pure BSD UNIX, porting applications is relatively straightforward. However, in real-memory MachTen systems, such as Personal MachTen or Power MachTen, some porting issues can arise. Without protected memory, a bad pointer can bring down your entire machine. Additionally, it may become necessary, during the execution of a process, to grow the size of a segment to accomodate a larger stack. This is not a problem on a virtual memory system such as Professional MachTen. However, with Power MachTen (before VM is supported), you may need to make certain accommodations. See section 10.13 in the Power MachTen User's Guide for more inforomation.

C3. What version of MachTen is recommended for software development?

Because Professional MachTen supports virtual memory and protected memory, it is the recommended version for software development. Power MachTen, on the other hand, has some unique software development capabilities. Since Power MachTen's compilers generate the same binary PEF formats as Metrowerks, Symantec, and MPW, Power MachTen can develop pure Macintosh applications, or even combine Macintosh and UNIX software development tools to generate hybrid applications. Furthermore, Power MachTen is the only version that includes a Fortran compiler.

C4. Will other Macs be able to run my applications without running CodeBuilder?

Of course. Distribution format is completely up to the developer. CodeBuilder can create either Mac standalone or UNIX-based applications and includes examples of both types.

C5. How much source code and documentation does CodeBuilder include?

About 400 MB of source code and 40 MB on online docs.

C6. Does MachTen support hard links?

In UNIX, linking allows several file names to be associated with the same physical file. Power MachTen properly supports UNIX soft links and hard links via link(2). Professional MachTen only supports soft links.


D. The X Window System:

D1. Can you explain the basic elements of X Windows software?
D2. What is unique about Tenon's X?
D3. Why is Tenon's X server so much faster than eXodus or MacX?
D4. Does Tenon's X support 24-bit color?
D5. What 3-button mice work under MachTen?
D6. Can I buy X separately?

D1. Can you explain the basic elements of X Windows software?

The X Window System is a protocol for performing windowing functions across a network. "Windowing functions" means drawing lines, arcs and other graphics primitives on any type of console or display. As a protocol, it is implemented in a set of libraries freely available from the Massachusetts Institute of Technology (MIT).

If an application supports the X Window protocol, the graphical output of that application can be displayed on any X terminal. The application is called an "X client" and the X terminal is considered an "X server".

D2. What is unique about Tenon's X?

Because MachTen is a complete UNIX system, MachTen supports local X clients. The MachTen X Window Software includes a local Motif Window Manager (mwm) and an Open Look Virtual Window Manager (olvwm). The sources to many X client applications are included as example programs, along with a complete X client development environment and a Motif toolkit.

D3. Why is Tenon's X so much faster than eXodus or MacX?

Tenon's X architecture is very different than the other X servers that are traditional Macintosh applications. Tenon sends the output of the X commands directly to the Macintosh hardware screen buffers instead of using QuickDraw. This has profound performance implications. In addition, Tenon's X uses the UNIX TCP sockets for communications instead of MacTCP; this further improves performance.

Tenon's X is said to be the fastest on the Mac market. X11perf benchmarks on a 25MHz 68040 Centris yield an XMark of 1.1 -- better than a SPARCStation 1! On a 40MHz Quadra 840av, the X performance rivals a SPARCStation 2. XMark ratings are not yet available for the native X performance on a Power Mac, but Tenon's architectural advantage carries over to that platform as well.

D4. Does Tenon's X support 24-bit color?

Yes. X11R6 with 24-bit color is available with Professional MachTen 2.3 and also for Power MachTen via the Ported Application CD, Volume 2.

D5. What 3-button mice work under MachTen?

In general, Tenon's X Window Software can be configured to run with any three-button mouse. We have the most experience with the Logitech MouseMan. Customers have also reported that the Kensington 4-button mouse works well.

D6. Can I buy X separately?

Yes, if all you need is to have your remote X client applications display on your Power Mac desktop, simply buy XTen.


E. File Handling/Management:

E1. Can MachTen access the MacOS file system?
E2. Does MachTen have a native file system?
E3. Does CodeBuilder have a native file system?

E1. Can MachTen access the MacOS file system?

Tenon maps the UNIX file system to the MacOS file system. So, with MachTen and MacOS, there is a single consistent file system. This means that everything is accessible to both MachTen and MacOS. You can 'see' the UNIX directories and files on the Finder desktop and you can 'see' the Macintosh folders and files from a UNIX terminal window using 'cd' and 'ls'.

E2. Does MachTen have a native file system?

MachTen uses the Macintosh file system (HFS) and adds a Network File System (NFS). A native UNIX file system is planned for the future.

E3. Does CodeBuilder have a native file system?

CodeBuilder includes two support file trees: one is a Macintosh file system (HFS) and the other is a native fast file system (FFS). The developer can use either one, the tradeoff is performance vs. Mac Finder integration.


F. Peripherals and Devices:

F1. What third party devices are compatible with MachTen?
F2. Can I use third party accelerators with MachTen?
F3. Can I use PowerPC upgrade cards with MachTen?
F4. What CD-ROM drives and formats are compatible with MachTen?

F1. What third party devices are compatible with MachTen?

Because MachTen sits on top of MacOS and makes use of the MacOS device drivers, all third-party devices, in general, will work with MachTen. Ocassionally there are exceptions. For example, tape device drivers are generally bundled with the application and are not part of MacOS. Thus, tape required special attention on Tenon 's part. MachTen supports 4mm DAT tape drives and 8mm Exabyte tape drives. Tape support is not yet part of the standard product and must be requested from Tenon Technical support.

F2. Can I use third party accelerators with MachTen?

CPU accelerators tend to make use of Apple's memory management hardware. Therefore, in general, you can usually use accelerator boards as long as you are not using MachTen VM. DayStar boards are generally not compatible with MachTen. .

F3. Can I use PowerPC upgrade cards with MachTen?

Power MachTen (Tenon's PPC native implementation of MachTen) runs with all PowerPC upgrade cards.

F4. What CD-ROM drives and formats are compatible with MachTen?

MachTen uses either Mac HFS or Foreign File Access for non-HFS formats, such as ISO 9660 and RockRidge, so MachTen can read any CD-ROM that the MacOS can read.


G. Technical MachTen:

G1. Patches

G1.a. Do I need a patch?
G1.b. What is the difference between the CU1 on the Ported Apps CD and the CU1 on the FTP site?

G2. Mail

G2.a. Do both versions of your product (Power MachTen and Professional MachTen) support POP mail service?
G2.b. Why are Eudora users having so many problems retrieving their mail?
G2.c. How do I start popper?
G2.d. How do I start pop3d?
G2.e. Why do some users get a "Mail drop locked" message from Eudora?
G2.f. Is sendmail configured out of the box to send and receive mail over the Internet or do I have to configure it?
G2.g. How do I configure sendmail to restrict the size of both incoming and outgoing mail to some arbitrary size?
G2.h. How can I have a mail address name that is longer than eight characters?
G2.i. Can I run popper and sendmail under MachTen and run the Apple Internet Mail Server under MacOS while MachTen is just doing the routing?

G3. Programming

G3.a. Where are the 48-bit random number generating functions (srand48, drand48, etc.)?
G3.b. Why doesn't gprof tell me anything useful about gcc generated code?
G3.c. Why can't I get STL containers to work with g++ 2.7.2?
G3.d. How do I use gcc math functions?
G3.e. Where are the xdr libraries?
G3.f. I live outside the US and I need crypt.h to compile a program. Where is it?
G3.g. When I run perl 5.003 under Power MachTen, it seems that I'm missing some essential libraries. What's the fix?

G4. Software and Hardware Compatibility

G4.a. I ran Norton Utilities on my Mac with MachTen and now MachTen doesn't run correctly. What happened? How can I fix it?
G4.b. Is there a port of Netscape Navigator for MachTen?
G4.c. Is Power MachTen, like Professional MachTen, incompatible with SilverLining?
G4.d. Why does my system crash when I use RAM Doubler 1.5.2 (or earlier) and MachTen at the same time?
G4.e. If I use Power MachTen with RAM Doubler 1.6.2 (or later), the systems hangs on shutdown after everything has successfully quit. How can I fix this?
G4.f. Any recommendations for a 3-button mouse to use with X?
G4.g. Any suggestions for an accelerator that will work with Professional MachTen?

G5. Networking

G5.a. Can I create my own mirror of the Tenon FTP site?
G5.b. How can I tell who logged in via anonymous FTP and which files they accessed?
G5.c. If I update some of my domain name database files, what must I type in order to load these new database files into the MachTen DNS server without restarting the system?
G5.d. Is multihoming possible under Power MachTen if I disable OpenTransport's TCP/IP components and run with MachTen's TCP/IP stack?
G5.e. Is it necessary to use MacTCP rather than OpenTransport in order to listen on multiple IP addresses for multihoming? Is MacTCP the better choice for MachTen versus OT 1.1.1?
G5.f. Are there any secrets to making MachTen work through ARA without interfering with existing network conditions?
G5.g. Can I run MacOS applications like NCSA Telnet and Netscape Navigator while running MachTen?
G5.h. Why do I get a message like "can't run ld on NFS filesystem" when I try to run executables on NFS disks? How can I fix this?
G5.i. What must I do to automatically start my installed version of Apache when MachTen is run?
G5.j. How can I access Apache under MachTen from Netscape on the same machine?
G5.k. Where can I get Netscape's Enterprise Server for MachTen?
G5.l. Why can't I use MacPPP or FreePPP to set up my serial IP connection when MachTen is running?
G5.m. What /dev/ttyxx setting should I use for an internal modem?
G5.n. What is a netmask and how do I use one?

G6. System Stability and Robustness

G6.a. What tips in general do you have to keep MachTen stable?
G6.b. Why does MachTen give the error message 'vmunix: file: table is full' when I try to run a program?
G6.c. Why does MachTen give the error message 'proc: table is full' when I try to run a program?
G6.d. Why does MachTen give the error message '/vmunix: no namelist' when I try to run a program?
G6.e. When I run several apps in MachTen at the same time and try to launch another application, I get "Fragment Load Err: - 2810 - Not Enough Memory in User's Address Space ...". I have plenty of memory left; what's the problem?
G6.f. When I am running MachTen, the performance is poor on any program that accesses the disk. Moving the Scheduling Priority slider bar in the MachTen control panel toward UNIX priority doesn't help. How can I speed up MachTen?
G6.g. My Power Mac has lots of memory and runs quite fast, but that is not reflected in MachTen's performance. I have the UNIX <-> Mac slider on the third tick mark from the Mac end and MachTen has a big chunk of memory. UNIX on the PPC 601 at 100MHz should blaze. What's up?
G6.h. I want MachTen to run faster, so I'm going to give it 10 MBs of RAM. Will this speed it up?
G6.i. Why are the load averages so high? On another workstation running a lot more applications, I'm used to load averages around 0.4--0.6. If MachTen's X is running, the load average rarely falls below 2. Is there some way to improve performance?

G7. Other System Issues

G7.a. When I telnet to a (non-MachTen) UNIX system, pressing the delete key just gives a '^?' character; I have to press ctrl-H to backspace. How I can make the delete key work correctly?
G7.b. I have a Stylewriter printer. Do you have a script that I can put into the /etc/printcap file so I can print?
G7.c. When will virtual memory and protected memory use be implemented on Power MachTen?
G7.d. Why can't I compile my C code that uses memory mapping system calls?
G7.e. I seem able to only start Macintosh applications from within Power MachTen by becoming root, even though the documentation (and file protections) indicate that any user should be able to do this. Why?
G7.f. How can I check the status of Mac applications launched from Power MachTen?
G7.g. I have ftp'd some files using the Macintosh program Fetch. I had the files downloaded as binary files. Is there any way to convert them to the MachTen format so I can use them?
G7.h. Why do active network applications stop when I launch MachTen?
G7.i. I used adduser to create a user in the 'wheel' group, but when the user tries to su I get "su: you are not in the correct group to su root". Any suggestions?
G7.j. How can I access Macintosh disks other than the one that MachTen resides on?
G7.k. Why do I get "Diskname on /Diskname: Device busy, some process using this filesystem" when I try to mount a hard disk?
G7.l. How do I start up my Macintosh with Power MachTen as the Finder?
G7.m. How do I convert the old password files from Professional MachTen to Power MachTen?
G7.n. I tried to change my root password, but the passwd program did not prompt me for my current passwd before creating a new one. /etc/passwd still lists the root passwd as *. Why?
G7.o. Where is rfork in Power MachTen?

G8. Ported Applications

G8.a. Where is the "ported_apps" folder on the Power MachTen distribution disk?
G8.b. Can you help me port an application or set up a ported application?
G8.c. I am trying to port some apps to MachTen. Which vendor's UNIX is closest to MachTen?
G8.d. Why does Tenon have two CD's of ported apps?
G8.e. Why does Tenon suggest purchasing Ported Apps Volume 2 for use with CodeBuilder?

G9. Miscellaneous

G9.a. How can I view an "info" file?

G10. X-Windows

G10.a. Is it possible to cut and paste from X Windows to the Mac desktop?
G10.b. How can I change the keyboard mapping under X?
G10.c. Where is libXshr?
G10.d. Why can't Mosaic find any URL's?
G10.e. Why do I get a "connection reset by peer" error message when I open a local xterm window and try to rlogin to another system?
G10.f. Whenever X is running, the entire system is unstable, whether I'm using MacTCP clients or X exclusively. Is there a configuration that will make things more stable?
G10.g. The Tenon Web pages say that XTen is X11R6, but my Power MachTen came with X11R5. Did I get an old MachTen distribution?
G10.h. I tried to launch XWindows with a ctrl-T, but I got the following error: 'fatal IO error 32 (Broken pipe) on X server ":0.0"' What happened? How do I fix it?
G10.i. The background for the X Window is 'opaque', i.e. I can't see my underlying Mac windows. How do I do this on the Tenon X Server?
G10.j. Why does creating a new window from the File menu kill the X session?
G10.k. System memory likes to bloat up to 20 or so MBs whenever I have more than a few things running under X. Is this normal?
G10.l. Is there a way to scale the display in X?

G1. Patches and updates

G1.a. Do I need a patch?

G1.a. If you are having problems with MachTen, the first question to ask yourself is "Do I need a patch?" Check to see if your problem matches or is similar to any of those below. If so, install the patch. If the problem persists and this FAQ doesn't answer it, please contact us.

MachTen 4.0.3: MachTen 4.0.2: MachTen 2.2: XTen 6.0:
G1.b. What is the difference between the CU1 on the Ported Apps CD and the CU1 on the FTP site?

The CU1 on the FTP site is newer and has the following additional features:

G2. Mail

G2.a. Do both versions of your product (Power MachTen and Professional MachTen ) support POP mail service?

Yes. We've recently found that popper (the public domain pop server that ships with Power MachTen) has some inherent bugs in it, so we've ported a different POP server, pop3d, that seems to work well. You can find pop3d on the Ported Applications CD and on our FTP site.

G2.b. Why are Eudora users having so many problems retrieving their mail?

Some POP (e.g. popper) servers have a hard time with the following: The POP daemon is case sensitive, and it only wants lowercase. If your users want to use POP clients, they will need to specify their user names all in lowercase in the Eudora settings. Make sure that the UID of the person trying to pop the mail is greater than 10. The UID requirement is hard coded into the POP daemon. pop3d solves all these problems.

G2.c. How do I start popper?

Popper is enabled if the "enable incoming connections" box is checked. It may not show up in the process list, however, since it is called on the fly when an incoming connection comes in.

G2.d. How do I start pop3d?

The same way as popper, but you must first edit the /etc/inetd.conf file for pop3d. Install pop3d. Then edit /etc/inetd.conf on the line that begins with 'pop' -- change '/usr/libexec/popper' to '/usr/libexec/pop3d' and change 'popper' to 'pop3d'. You must restart inetd for the change to take effect. The simplest way to do this is to restart MachTen.

G2.e. Why do some users get a "Mail drop locked" message from Eudora?

Delete the .pop.xxxx files in your mail server's spool directory. These files occasionally remain locked when a POP connection is broken, so deleting them should clear up the problem.

G2.f. Is sendmail configured out of the box to send and receive mail over the Internet or do I have to configure it?

The MachTen control panel has an "enable incoming mail" box. If the hostname, IP addresses, and domain name are all correct, sendmail should work out of the box.

G2.g. How do I configure sendmail to restrict the size of both incoming and outgoing mail to some arbitrary size?

We are not aware of any sendmail configuration option that will do this.

G2.h. How can I have a mail address name that is longer than eight characters?

Assign an alias in the /etc/aliases file like this: webmaster: webmstr
All mail addressed to webmaster will then go to webmstr. You'll need to restart MachTen for the change to take effect.

G2.i. Can I run popper and sendmail under MachTen and run the Apple Internet Mail Server under MacOS while MachTen is just doing the routing?

That should be fine. Disable incoming connections and receipt of mail for MachTen.

G3. Programming

G3.a. Where are the 48-bit random number generating functions (srand48, drand48, etc.)?

These functions are part of UNIX System V. Since MachTen is BSD, these functions are not included.

G3.b. Why doesn't gprof tell me anything useful about gcc generated code?

Gprof does not work for any version of gcc right now. We are working to resolve this.

G3.c. Why can't I get STL containers to work with g++ 2.7.2?

G++'s template support isn't quite up to the task yet. FSF thinks g++ 2.8.0 will be able to fully utilize the STL.

G3.d. How do I use gcc math functions?

The math functions aren't in the libraries that are included by default when you compile. Try

% cc test.c -lm

to include the math libraries.

G3.e. Where are the xdr libraries in MachTen?

They are included in CU1 for Power MachTen, which is on the PowerPC Ported Apps CD and on our FTP site.

G3.f. I live outside the US and I need crypt.h to compile a program. Where is it?

Due to munitions export regulations, it was not possible to include this with MachTen for foreign distribution. You should have no problem finding crypt.h on a non-US FTP site.

G3.g. When I run perl 5.003 under Power MachTen it seems that I'm missing some essential libraries. What's the fix?

Perl 5.003 source, binaries, and the necessary libraries are included on the PowerPC Ported Apps CD and on our FTP site.

G4. Software and Hardware Compatibility

G4.a. I ran Norton Utilities on my Mac with MachTen and now MachTen doesn't run correctly. What happened? How can I fix it?

Norton Utilities changes any file name starting with a period to instead start with a dash. Also, Norton unmangles the names of some files (mangling is needed to tell the MacOS that, for example, 'INSTALL' and 'install' are different files). This, of course, throws off MachTen. We recommend using MacTools Pro from Central Point instead. To fix the Norton damage, the options are pretty limited. Either rename all the files that Norton changed back to their original names, or reinstall MachTen.

G4.b. Is there a port of Netscape Navigator for MachTen?

There is no Navigator for MachTen because Navigator is a commercial program and the source is not available to us. We do offer Mosaic, which has a publicly-available source.

G4.c. Is Power MachTen, like Professional MachTen, incompatible with SilverLining?

Power MachTen is compatible with SilverLining. Since Power MachTen does not implement UNIX virtual memory, the Professional MachTen problem with SilverLining doesn't apply; however, this may become a problem again when we implement UNIX virtual memory.

G4.d. Why does my system crash when I use RAM Doubler 1.5.2 (or earlier) and MachTen at the same time?

RAM Doubler version 1.5.2 (or earlier) is not compatible with MachTen.

G4.e. If I use Power MachTen with RAM Doubler 1.6.2 (or later), the systems hangs on shutdown after everything has successfully quit. How can I fix this?

Install CU1. This will fix all known incompatibilities. We recommend using these versions with MachTen 4.0.3 and CU1.

G4.f. Any recommendations for a 3-button mouse to use with X?

We use the Logitech MouseMan. Almost any mouse should work, but some no-names have had some trouble.

G4.g. Any suggestions for an accelerator that will work with Professional MachTen?

Almost any accelerator will operate correctly as long as it encompasses a full upgrade (i.e., it doesn't leave out crucial operations, such as the presence of an MMU). Some DayStar boards do not function correctly because they do not support a working MMU system. There is no real list, as there are so many cards out on the market and keeping track would be almost impossible.

G5. Networking

G5.a. Can I create my own mirror of the Tenon FTP site?

Sure, but we'd like you to be authorized. Once you are authorized, we can add you to the list of sites waiting to be on the mirror program. Contact jaimej@rocks.tenon.com to get started on a mirror site.

G5.b. How can I tell who logged in via anonymous FTP and which files they accessed?

Almost all of that information is in /var/log/ftplog. You can't be certain of who logged in by anonymous ftp, but you can at least get the site that they came from, and the e-mail address that they gave as a password (plus all the files they got).

G5.c. If I update some of my domain name database files, what must I type in order to load these new database files into the MachTen DNS server without restarting the system?

Most programs will usually restart when killed with a SIGHUP. To load the new database files, run 'ps -aux' to get the pid (process ID) of 'named. Then run 'kill -HUP pid' where 'pid' is the ID of 'named'. Also remember to update your serial number in your DNS files, so as to allow for propagation to other DNS servers.

G5.d. Is multihoming possible under Power MachTen if I disable OpenTransport's TCP/IP components and run with MachTen's TCP/IP stack?

Yes, you can multihome if you disable OpenTransport and run with our TCP/IP stack, .

G5.e. Is it necessary to use MacTCP rather than OpenTransport in order to listen on multiple IP addresses for multihoming? Is MacTCP the better choice for MachTen versus OT 1.1.1?

MachTen has its own TCP stack which allows multihoming. Neither MacTCP nor OpenTransport have support for multihoming. In either case, MachTen's stack should be used. MachTen's stack prefers to have MacTCP be the original stack, so this is the preferred base.

G5.f. Are there any secrets in making MachTen work through ARA without interfering with existing network conditions?

Remove the 'MacTCPdLib' from the MachTen Libraries folder. This will remove MachTen's interaction with the Macintosh TCP/IP Stack. You *can* use both OpenTransport and MachTenTCP if you have two IP addresses. If you move your MacTCPdlib out of your Tenon Kernel Libraries (in the extensions folder), the Mac applications will use OpenTransport. To do this, configure OpenTransport on one IP address and MachTen on another.

G5.g. Can I run MacOS applications like NCSA Telnet and Netscape Navigator while running MachTen?

Yes. As long as MachTen is the first TCP/IP application you run, you can run any other TCP/IP application. MachTen must be the first one loaded because it establishes its own networking environment, including its own TCP stack. Other TCP/IP applications then run using MachTen's TCP stack.

G5.h. Why do I get a message like "can't run ld on NFS filesystem" when I try to run executables on NFS disks? How can I fix this?

Because of the way MachTen runs them, you can't execute or link binaries over NFS or any other file-sharing system that isn't AppleShare. This is because we take advantage of the Code Fragment Manager in System 7. The upside is that our executables occupy less RAM when running and can dynamically allocate the RAM that they use. The downside is that you can't link or execute binaries over non-AppleTalk networks. As a workaround, the following script should help you.

#!/bin/sh

statfs $1 | grep -q ' ufs '
if [ $? -eq 0 ]; then
exec "$@"
fi

FN=$1 ; shift
TN=/tmp/$$-`basename $FN`
cp -p $FN $TN && $TN "$@"
val=$?
rm -f $TN
exit $val

G5.i. What must I do to automatically start my installed version of Apache when MachTen is run?

You'll need to edit two files -- one is the /etc/rc file. Change the line that says '/usr/libexec/httpd' to '/usr/local/etc/httpd'. Then, change the /etc/rc.conf file so that START_httpd = "yes". That should do it.

G5.j. How can I access Apache under MachTen from Netscape on the same machine?

First start Apache using the <httpd> command. Then you can access it with Netscape at the following URL <http://localhost> or <http://127.0.0.1>

G5.k. Where can I get Netscape's Enterprise Server for MachTen?

There is no version of Netscape's Enterprise Server available for MachTen. They only target some UNIX systems. We do have the Apache server available on our ftp site, but the Enterprise server has some more features.

G5.l. Why can't I use MacPPP or FreePPP to set up my serial IP connection when MachTen is running?

The IP layer within the MachTen BSD protocol stack does not provide an interface to MacPPP or FreePPP, forcing the use of MachTen's PPP. The OpenTransport interface to MachTen available with CU1 for Power MachTen allows the use of MacPPP, MacSLIP and other transport protocols while MachTen is running.

G5.m. What /dev/ttyxx setting should I use for an internal modem?

You will have to use the Communications Toolbox.

G5.n. What is a netmask and how do I use one?

Note: for this answer "address" refers to just the last number in an IP address (e.g. 236.192.43.79 is just 79).

Think of the addresses that have been given to you as binary numbers.
161 would be represented as:
10100001 ( 128 + 32 + 1 = 161 )
And 175 would be represented as:
10101111 ( 128 + 32 + 8 + 4 + 2 + 1 = 175 )
Your netmask, 240, would be represented as:
11110000 ( 128 + 64 + 32 + 16 = 240 )

A netmask is like a face mask, with holes in it. The 1's are the holes, and the 0's are the rest of the mask. So if you see the addresses as faces, and the netmask as the mask, you can actually only see the first 4 bits - 1010. Kind of like this:

"Face" (Address) 10100001
"Mask" (Netmask) 11110000
"You" (Router) 1010----

The router "looks" through the netmask at each bit of data on the network, and if it's going to a destination that doesn't start with 1010, then it knows it has to route that bit of data somewhere else. That's how routers work. So your ISP has said that all of the machines on your network must have addresses beginning with 1010. If you look at those numbers in binary, that comes out as 10100000 to 10101111 (160-175).

Now, suppose you're trying to split this network, which has a total netmask of 240 (11110000) into two networks. You can see that the largest either of these subnets can be is 8 machines, because you'll need to have a larger netmask for the router to work correctly. The next netmask you could pick would be 248 (11111000), which only allows 8 machines to "look the same" to the router:
10100000 (160) 10100100 (164)
10100001 (161) 10100101 (165)
10100010 (162) 10100110 (166)
10100011 (163) 10100111 (167)
- or -
10101000 (168) 10101100 (172)
10101001 (169) 10101101 (173)
10101010 (170) 10101110 (174)
10101011 (171) 10101111 (175)

So, if you're going to split your network up, you can't have more than 8 machines on each subnetwork - otherwise routing won't work. The only other solution would be to call your Internet Service Provider and request more IP numbers, say 160-191. That would give you a netmask of 224, and you could use 240 as a subnet mask, giving you up to 16 machines on each subnet.

G6. System Stability and Robustness

G6.a. What tips in general do you have to keep MachTen stable?

Watch your memory. Running Netscape 3.0 and MachTen at the same time is a bad idea if you have only 16 MB of RAM. Run a disk error checker often and a disk defragmenter at least once every three weeks (assuming daily use of MachTen). Install all necessary patches and updates.

G6.b. Why does MachTen give the error message 'vmunix: file: table is full' when I try to run a program?

This error is caused by the open files value in the MachTen control panel being set to low. Increase the number of files allowed to be opened in the control panel and the error message will disappear. Don't increase the open files value too drastically, because each file handle requires memory. Ideally, increase the open files value in increments of 20, until the error message no longer appears.

G6.c. Why does MachTen give the error message 'proc: table is full' when I try to run a program?

You are unable to start another process because you are at the maximum capacity. You can raise the maximum using the MachTen Control Panel/Memory/UNIX Processes.

G6.d. Why does MachTen give the error message '/vmunix: no namelist' when I try to run a program?

If you rename your MachTen application to something else, this will happen. This might also happen if the MachTen application is moved away from where it was originally installed. These programs scan the kernel for information. If the kernel isn't where they think it is, they give you this error. This error can also occur when running MachTen on top of OpenTransport using the OT Socket Library with network utilities.

G6.e. When I run several apps in MachTen at the same time and try to launch another application, I get "Fragment Load Err: -2810 - Not Enough Memory in User's Address Space ..." I have plenty of memory left. What's the problem?

MachTen is running out of memory in "User's Address Space", which means within the application. Increase the amount of memory you give to the MachTen application by a megabyte or so, and restart.

G6.f. When I am running MachTen the performance is really poor on any program that accesses the disk. Moving the Scheduling Priority slider bar in the MachTen control panel toward UNIX priority doesn't help. How can I speed up MachTen?

Move the slide bar in the MachTen control panel down toward the MacOS. By running MachTen at the highest priority you are wasting cycles waiting for the MacOS to get a time slice for disk activity. Try pulling the slide bar down closer to the middle. In tech support, we generally leave the slider three ticks from the UNIX end. You can put this one or two tick marks closer to the UNIX side when compiling or running other processor-intensive application in MachTen. Also, we recommend not running MachTen and File Sharing at the same time.

G6.g. My Power Mac has lots of memory and runs quite fast, but that is not reflected in MachTen's performance. I have the UNIX <-> Mac slider on the third tick mark from the Mac end and MachTen has a big chunk of memory. UNIX on the PPC 601 at 100MHz should blaze. What's up?

The major bottleneck in terms of I/O and performance is caused solely by MacOS. This will change when we come out with our fast file system. For the time being the only workaround is something like Speed Doubler.

G6.h. I want MachTen to run faster, so I'm going to give it 10 MB's of RAM. Will this speed it up?

You probably don't want to allocate more than about 5 MB to the MachTen application, since MachTen actually gets most of its memory from the System software. You'll notice that if you watch the About This Macintosh... box (Apple Menu, in the Finder) while doing some intense processing in MachTen, the System Software bar will grow rapidly. That's MachTen allocating memory. If you give the MachTen application too much memory, it won't be able to get its memory from the System, and it may randomly crash or give 'out of memory' errors.

G6.i. Why are the load averages so high? On another workstation running a lot more applications, I'm used to load averages around 0.4-0.6. If MachTen's X is running, the load average rarely falls below 2. Is there some way to improve performance?

The load averages are reported differently under MachTen. This load average is by no means a measure of system performance. Load averages are not meant for speed comparisons. Typically a high load average (say 10+) is an indicator that you need a faster, more powerful machine. The load average is calculated by counting the number of processes waiting for the processor. The MacOS is always counted as a waiting process, so our load average is typically one higher than you would expect.

G7. Other System Issues

G7.a. When I telnet to a (non-MachTen) UNIX system, pressing the delete key just gives a '^?' character; I have to press ctrl-H to backspace. How I can make the delete key work correctly?

At the command line on the foreign system type 'stty erase [DELETE KEY]'. If you access the foreign system primarily through MachTen, then you should put the 'stty erase [DELETE KEY]' line in a login script such as .login or .cshrc, so it will change the delete to backspace every time you log into the foreign system. Incidentally, [DELETE KEY] means press the key, not to type out DELETE KEY.

G7.b. I have a Stylewriter printer. Do you have a script that I can put into the /etc/printcap file so I can print?

MachTen does not support QuickDraw based Stylewriters, only line and PostScript printers. You can use a Stylewriter as a straight ASCII line printer by setting up an entry in the printcap as an ASCII printer pointing to a serial device. There are examples in the /etc/printcap file on how to do this.

G7.c. When will virtual memory and protected memory use be implemented on Power MachTen?

Virtual memory and protected memory, along with a fast file system, are a top priority for Tenon., especially with the recently announced System 8 delays (yet again). We haven't committed ourselves to a date, but the end of 1996 is not out of the question.

G7.d. Why can't I compile my C code that uses memory mapping system calls?

Memory mapping will not work under Power MachTen since we do not yet have a true UNIX virtual memory implementation. I would recommend that you, instead of using distinct processes and trying to communicate between them, try using a multithreaded approach -- we do have the POSIX threads library, and all threads share the same memory space. Alternately, you can use sockets for IPC.

G7.e. I only seem able to start Macintosh applications from within Power MachTen by becoming root, even though the documentation (and file protections) indicate that any user should be able to do this. Why?

As of now only root, or users authorized in the following manner, can execute Mac apps -- the Power MachTen documentation is incorrect. Before proceeding, please recognize that allowing users to run Macintosh applications will make your system significantly less secure. To allow users to run Macintosh applications, you have to change the resource settings of the MachTen application. First start MachTen and get the user ID (the numbers) of the users you want to allow to run Macintosh applications. Exit MachTen and start ResEdit. Inside ResEdit, open the MachTen application (in the MachTen Root:MachTen folder). Double click on the Luid icon, this will open a window titled "Luids from MachTen". In that window, double click on the line that contains "Launch User ID's". This will open a window titled "Luid 'Launch User IDs' ID=-8192 from MachTen". Highlight the last number in this window with your mouse, then select "Insert New Field(s)" from the Resources menu. This will create a box below the highlighted number; in that box enter one of the user id's that you previously retrieved. Repeat this process: select last number, etc. until you have entered all the user id's that you want. Remember to save the file.

G7.f. How I can check the status of Mac applications launched from Power MachTen?

Power MachTen, unlike Professional MachTen, is unable to check the status of currently running Macintosh applications.

G7.g. I have ftp'd some files using the Macintosh program Fetch. I had the files downloaded as binary files. Is there any way to convert them to the MachTen format so I can use them?

Fetch (and basically all other Macintosh apps) saves your files with both a resource fork and a data fork. Before using the file in MachTen, the resource fork should be removed by running 'dfork -i <filename>'.

G7.h. Why do active network applications stop when I launch MachTen?

As long as the MachTen TCP/IP stack is used, all running TCP/IP applications must be quit before launching MachTen. With CU1 for Power MachTen, the requirement to quit Macintosh TCP/IP applications before MachTen launch is eliminated.

G7.i. I used adduser to create a user in the 'wheel' group, but when the user tries to su I get "su: you are not in the correct group to su root" Any suggestions?

Do you have a line in /etc/group that says:
wheel:*:0:root,your_user
What's important here is that wheel is group ID 0, and the list of users is delimited by the comma. The adduser command may not correctly set your group. Check the /etc/groups file and add it manually if needed.

G7.j. How can I access Macintosh disks other than the one that MachTen resides on?

You can mount desktop items. For example, if you have a volume called "Hard Disk" on your desktop, you can mount it with 'mount "Hard Disk" /mnt' where /mnt is your local mount point.

G7.k. Why do I get "Diskname on /Diskname: Device busy, some process using this filesystem" when I try to mount a hard disk?

This message means that you have the drive mounted at another location.

G7.l. How do I start up my Macintosh with Power MachTen as the Finder?

At this time the you can do one of two things. You can rename the NoFinder application to Finder, rename the Finder something else and reboot. Your machine will boot NoFinder and you can start applications from there. You can also boot normally and use NoFinder to kill the Finder. Right now there is no way to boot Power MachTen automatically without the Finder or NoFinder. Alternatively, the NoFinder application can be used to terminate Finder. NoFinder is available at file://ftp.tenon.com/pub/applications/contributed/NoFinder.gz

G7.m. How do I convert the old password files from Professional MachTen to Power MachTen?

Because Power MachTen is BSD 4.4 compliant, we have moved to the shadow password suite. As a result, the old databases are no longer compatible. The following two perl scripts will convert the password files for you. The first takes your passwd file and outputs what your master.passwd should look like. Just run it and redirect your output to /etc/master.passwd. You should also chmod 600 this file so only root can read it. The second modifies your passwd file so it no longer contains the passwords. You should back up your passwd file before you try any of this, in case anything goes wrong. If you don't already have perl, you can get it from our ftp site.

Using the "vipw" command, you should edit the password information. Just modify it so it will update the database, i.e., change something then change it back. When you exit vipw, it will build the spwd.db and pwd.db databases.

**** First Script ****
#!/usr/local/bin/perl

open(PASSWD, "/etc/passwd");

while(<PASSWD>){
chop;
($name, $password, $uid, $gid, $realname, $homedir, $shell) = split(/:/);
print
"$name:$password:$uid:$gid::0:0:0:$realname:$homedir:$shell\n" ;
}

**** Second Script ****
#!/usr/local/bin/perl

open(PASSWD, "/etc/passwd");

while(<PASSWD>){
chop;
($name, $password, $uid, $gid, $realname, $homedir, $shell) =
split(/:/);
print "$name:\*:$uid:$gid::$realname:$homedir:$shell\n" ;
}

G7.n. I tried to change my root password, but the passwd program did not prompt me for my current password before creating a new one. /etc/passwd, still lists the root passwd as *. Why?

The passwd program does not ask for your old password when changing it. Power MachTen uses shadow password that it keeps in a separate encrypted file. Your /etc/passwd file should contain * for the passwords. Refer to the passwd man page for more details.

G7.o. Where is rfork in Power MachTen?

We did not set this up correctly in Power MachTen. You must make a soft link between dfork and rfork: 'ln -s rfork dfork'. When rfork runs, it will notice its name and act accordingly.

G8. Ported Applications

G8.a. Where is the "ported_apps" folder on the Power MachTen distribution disk?

Sorry for the confusion, but the documentation is in error. On the Power MachTen 4.0.3 disk there is no "ported_apps" folder. You can get source for ported apps from our ftp site and from the Power Mac Ported Applications CD, which contains source and binaries.

G8.b. Can you help me port an application or set up a ported application?

Quite possibly. We can help with "core" applications such as Apache or INN or other apps that are run on a standard Internet-aware UNIX system. If you have a large, intricate and obscure application, we may not be able to help as much, simply because we may not have the resources required to understand the intricacies of your application. We will, of course, help as much as we can with any specific MachTen-related questions you might have.

G8.c. I am trying to port some apps to MachTen. Which vendor's UNIX is closest to MachTen?

Since MachTen is a straight BSD port, anything BSD is a good choice. If the source has flags for BSD, it's a great place to start. The next best are NexT or SunOS. You will have to recompile anything that was not compiled for MachTen. O'Reilly has a good book on porting UNIX programs.

G8.d. Why does Tenon have two CD's of ported apps?

Ported Apps Volume 1 is for Professional MachTen. Volume is applications for Power MachTen.

G8.e. Why does Tenon suggest purchasing Ported Apps Volume 2 for use with CodeBuilder?

Two reasons. First, Ported Apps extends CodeBuilder's suite to include advanced UNIX-based tools. Second, Ported Apps comes with over 200 MB of source code, which can be used to develop UNIX-based or standalone Macintosh applications.

G9. Miscellaneous

G9.a. How can I view an "info" file?

You can view .info files with emacs: type meta-x info and hit return, and it will bring up lots of interesting information, including tutorials. (The meta key is usually your escape key.) Alternatively, you can view it using TeXinfo. Both emacs and TeXinfo are available on the Ported Apps CD.

G10. X Windows

G10.a. Is it possible to cut and paste from X Windows to the Mac desktop?

X cannot cut and paste to the desktop because it is a true X server, rather than a Macintosh application. As a workaround you can copy your text to the X clipboard, then save the clipboard to a file and access the file from MachTen windows or with BBEdit.

G10.b. How can I change the keyboard mapping under X?

Checkout is the xmodmap program. It will allow you to manipulate your keyboard mappings, or you can move the appropriate Xmodmap (located in /usr/X11/lib/X11/xinit/) to your home directory and remap the key within the file.

G10.c. Where is libXshr?

LibXshr is a library that was present in earlier versions of MachTen, but is no longer used. Binaries compiled under previous versions need to be recompiled.

G10.d. Why can't Mosaic find any URL's?

When X appears to start but Mosaic complains that the URL cannot be found, it is an indication that the Web server (httpd) has not started. Using the OpenWindows menu, start an xterm and use the <ps -aux | grep httpd> command to verify that the server is not running. Edit the /etc/httpd/conf/httpd.conf file. Uncomment the following line:


In addition, you can change the entry <new.host.name> to a name of your choice. Save the file and start the Web server with the <httpd -x> command. To gain access to the X configuration pages, push the reload button within Mosaic or restart Mosaic.

G10.e. Why do I get a "connection reset by peer" error message when I open a local xterm window and try to rlogin to another system?

Try setting the TCP/IP control panel (the one for Open Transport) to "Load Only When Needed". (You can get to this by clicking the "Options..." button).

G10.f. Whenever X is running, the entire system is unstable, whether I'm using MacTCP clients or X exclusively. Is there a configuration that will make things more stable?

Get all updates (XTen users should upgrade to 6.0.1+). If this doesn't help, try taking the TCP/IP control panel out of the Control Panels folder. On some systems, this can greatly help our dealings with OpenTransport.

G10.g. The Tenon Web pages say XTen is X11R6, but my Power MachTen came with X11R5. Did I get an old MachTen distribution?

MachTen ships with R5, but XTen ships with R6. MachTen with X11R6 is available on the PPC Ported Apps CD. CU1 is also included on this disk and should be installed before installing X11R6.

G10.h. I tried to launch XWindows with a ctrl-T, but I got the following error: 'fatal IO error 32 (Broken pipe) on X server ":0.0"' What happened? How do I fix it?

MachTen 4.0.x comes with X11R5, which supports only up to 256 colors. Make sure that your monitor is set to 256 colors. An incorrect monitor depth is usually the cause of the above error message.

G10.i. The background for the X Window is 'opaque', i.e. I can't see my underlying Mac windows. How do I do this on the Tenon X Server?

There is no way to use "rootless" windows in MachTen. Dedicated X windows enhances performance many-fold.

G10.j. Why does creating a new window from the File menu kill the X session?

It doesn't. Visit the window menu and reselect the X session as the window you would like to view.

G10.k. System memory likes to bloat up to 20 or so MBs whenever I hav


HOME | Flavors | Admin | Network | Security | S/W | Help | Events | Vendors | Careers | Internet
About | Add Link | Feedback | Search

Copyright © 1994-2005 Unix Guru Universe