MacNetTools Carbon Info
Is MacNetTools compatible with OS X?
MacNetTools, as well as my entire source code base are currently in the process of being carbonized.
- For those who are unfamiliar with the terminology, carbonization is the process of making a Mac program compatible with Apple's CarbonLib. Through Apple's ongoing efforts in developing OS X over the years the result has been a new OS which supports the majority, but not all, of the system functions of the original MacOS. Additionally it also supports many new functions which did not previously exist on the original MacOS. Obviously with two differing versions of an OS such as this, software written strictly for one OS will not run on the other. If we were unfortunate enough to live in he Wintel world, that is where matters would end as we would throw up our hands in disgust and accept the fate of having to buy completely separate program versions to run on each OS. We all know that Apple does not operate this way, however as shown by their smooth migration from 68K machines to PPC machines with software that would run on both thanks to the 68LC040 emulator built in to all versions of the OS since System 7.0. They have pulled the same rabbit out of the hat again in the migration to OS X. The Carbon Library (or CarbonLib in your OS 8.1 - 9.2 extensions folder) is the bridge that makes this possible. The process of altering a program so that it uses this library for accessing OS X features and so that it makes none of the system calls that are exclusive to earlier versions of the OS is called carbonization.
- I was recently asked about carbon by someone who was under the impression that it was a bad thing that only created a lot of work for the programmer. This paragraph was my response which states the same thing somewhat differently. Carbonizing is actually a great benefit that Apple came up with to make for a smooth flow of program functionality from OS 8/9 through to OSX. It is very similar to the types of changes that were required to make an old 68K program run on the PPC. A program does not become any faster or more reliable, but it does gain the benefit of being able to run on any combination of machine and OS from OS 8.1 through OSX and PM6100 through G4 and beyond. Using the same source code base the programmer can output a PPC version that will run only on OS 8/9, a Carbon version that can run on OS8/9 with the CarbonLib installed (and most PPCs have it these days) and that same Carbon version can also run directly under OSX but without all the fance new interfacefeatures of OSX. Of course OSX also provides the Classic mode where OS9 can be run under OSX and older MacOS programs can still run under that. All in all, Apple has covered the bases very well to prevent situations like those that are common in the Wintel world where the OS changes and forces everyone to get new software that will only run on that OS. Without Carbon, the alternative for Mac programmers would have been to immediately have to switch to writing in OSX native code under a Unix like system which is very very different from what we are accustomed to and a huge amount of work because it would mean having to learn a new development system as well as the new OS and all of its new calls. Apple did it right.
- For me this task will be approached in a stepwise manner.
- First of all my libraries were carbonized during the time from Oct 2001 to Dec 2001. At the same time I made additional changes to get rid of a few antique artifacts in my code that were necessary in OS 6/7, tolerated in OS 8/9 but out of the question in OSX. These libraries (there are about 50 of them) cover the vast majority of the functionality of all of my software since I always attempt to move as much reusable code as possible into these libraries so that it may be used by any of my other programs. MacNetTools will benefit from this in the next release when many useful new utilities functions are added that already exist in another program. The task was easy, but time consuming. You keep on finding one small but simple change that needs to be made among hundreds of similar changes and you end up feeling like a mass production line where the changes keep being made en masse. It felt something akin to painting a wall using a paintball gun. You would shoot a paintball at the wall, then see another blank spot which you would proceed to shoot with yet another paintball etc etc. None of them really amounted to much or covered much space, but eventually the wall began to look more like it was painted than bare.
- The next step was to carbonize the MacNetTools program itself. This was done during the last 2 weeks of Dec 2001 and the first week of Jan 2002. The program is now complete and running, however the changes I made to rid myself of the antiques (see last paragraph)resulted in an undesired change in program behavior that must be fixed before release.
- Currently I am in the process of carbonizing another program of mine (a text editor) which utilizes much more of my code base than MNT does. As such, it will serve as a test platform to help me to get all of my libraries functioning again as they should. This should be complete in another week or two.
- After that, I must go back and fix all library bugs that have been created in the process. That may take a month.
- Then I will return to MacNetTools again to make it totally functional once again in its current form. At that time (mid Spring 2002) I may provide a temporary new release of both a PPC and Carbon version of the program.
- Then I will return to my text editor again to make it totally functional. It is not yet released to the public and only two people other than myself have seen it... perhaps someday soon.
- Then I will return to MacNetTools again to do all the bug fixes and new features listed on the MNT main page. That is the release of MNT which you will want and it will still be free. Well, I may begin to call it shareware at that point and provide a way for people to make voluntary contributions (believe it or not, a few people have begged me to let them pay for it), but I will never force the issue because I firmly believe that functions such as those which MNT provides should always be available to the public for free.
- That is where progress on MacNetTools currently stands... and I have just lost another hour in writing this that should have been spent on writing MNT.
You are visitor number
Since Feb 25, 2001
This page last updated Mar 13, 2002