home *** CD-ROM | disk | FTP | other *** search
/ db.tidbits.com / db.tidbits.com.tar / db.tidbits.com / getbits.acgi?tbser=1186.orig < prev    next >
Text File  |  2010-09-23  |  68KB  |  809 lines

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2.         "http://www.w3.org/TR/html4/loose.dtd">
  3.  
  4. <html lang="en">
  5. <head>
  6.     <meta http-equiv="content-type" content="text/html;charset=utf-8">
  7.     <meta http-equiv="Content-Language" content="en">
  8.     <title>TidBITS: Mac OS X and Unix</title>
  9.  
  10.     <meta name="title" content="TidBITS: Mac OS X and Unix">
  11.     <meta name="description" content="TidBITS is a free email and Web publication covering the Macintosh Internet community.">
  12.     <link rel="image_src" href="/images/tblogo9.gif" />
  13.     <meta name="keywords" content="Apple, Mac, Macintosh, Mac OS, Mac OS X, newsletter, Internet, analysis, reviews, technology, news, TidBITS, TidBITS Talk, Engst">
  14.     <link rel="Help" href="http://www.tidbits.com/about/about-tidbits.html" title="About TidBITS">
  15.     <link rel="Search" href="http://www.tidbits.com/search/" title="Search All TidBITS Content">
  16.     <link rel="Author" href="http://www.tidbits.com/about/contact-info.html" title="Contact Information">
  17.     <link rel="Contents" href="tb-issues/" title="TidBITS Issue Archive">
  18.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/feeds/tidbits.rss" title="TidBITS Full Text Feed">
  19.     <link rel="alternate" type="application/rss+xml" href="http://db.tidbits.com/commentfeeds/firehose.xml" title="TidBITS Full Comments Feed">
  20.  
  21.     <link rel="stylesheet" href="/tidbits_2010_001.css" type="text/css">
  22.     <LINK rel="stylesheet" type="text/css" media="print" href="/tb-new-print.css">
  23.     <script src="/javascript/tb.js" type="text/javascript"></script>
  24.     <meta name="viewport" content="width:940">
  25.     <script type='text/javascript' src='http://db.tidbits.com/ads/delivery/spcjs.php?id=2'></script>
  26.     <script src="/javascript/prototype.js" type="text/javascript"></script>
  27. <script src="/javascript/scriptaculous.js" type="text/javascript"></script>
  28. <script src="/js-global/FancyZoom.js" type="text/javascript"></script>
  29. <script src="/js-global/FancyZoomHTML.js" type="text/javascript"></script>
  30. <script type="text/javascript"  src="http://api.recaptcha.net/js/recaptcha_ajax.js"></script>
  31.  
  32. </head>
  33. <body onLoad="setupZoom()">
  34. <!-- popup query -->
  35. <div id="big_ole_background" style="display:none"> </div>
  36. <div id="tipbits_enclosure_preview" style="display:none">
  37. <div class="tearoffbox_wide_container">
  38. <div class="tearoffbox_wide_tips">
  39.  
  40. <div class="tip_display">
  41. <div class="preview">
  42. <h6><span id="p_tips_title"></span></h6>
  43. <p id="p_tips_text"></p>
  44. <p>Visit <a href="javascript:void(0)" id="p_url"><span id="p_label"></span></a></p>
  45. <p class="credit">Submitted by <span id="p_reader"></span></p>
  46. <p><input type="submit" value="Back" name="preview_tip" onClick="preview_box('ts','tipbits_enclosure_preview'); return false;"></p>
  47. </div>
  48. </div>
  49. <div class="tearoffbox_wide_bottom_tips">
  50. </div>
  51.  
  52. </div><!-- end tearoffbox_wide_tips -->
  53. </div><!-- end tearoffbox_wide_container for tips-->
  54. <!-- end tearoff box wide -->
  55. </div><!-- end enclosure -->
  56.  
  57. <div class="popup_box_with_captcha" id="ts" style="display:none">
  58.     <div id="popup_box_thanks" style="display:none" onClick="close_popup_thanks('popup_box_thanks', 'ts')"><br>Thanks for submitting your tip! All submissions are moderated by an editor before appearing online. We've reset the form so you can enter another tip. Or you can close the tip submission box.    <div class="x_close" id="thanks_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('popup_box_thanks', 'ts'); return true;">Close</a></div></div>
  59.     <div class="tip_box_format">
  60.     <div id="ts_innards" onClick="close_popup_thanks('popup_box_thanks', 'ts')">
  61.         <div class="tip_box_head">TipBITS Submission</div>
  62.         <div class="tip_box_form">        
  63.                 
  64.             <div class="tbf_row" id="ts_message_box" style="display:none">
  65.                 <div class="tbf_wide"><div class="tbf_alert" id="ts_top_message"></div></div>
  66.             </div>
  67.             <div class="spacer"></div>
  68.  
  69.             <form action="foobar.cgi" method="get" name="submit_tip">
  70.  
  71.             <div class="tbf_row"><div class="tbf_wide_extra_top not_bold">Please submit only technical tips that will help other TidBITS readers better use their Macs, iPhones, and related software and hardware. All product announcements should be sent to <a href="mailto:releases@tidbits.com">releases@tidbits.com</a>.</div></div>
  72.             <div class="spacer"></div>
  73.             <div class="tbf_row">
  74.                 <div class="tbf_left">Tip title<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" id="tip_title_id" name="tip_title" tabindex="1"></div>
  75.             </div>
  76.             <div class="spacer"></div>
  77.             <div class="tbf_row">
  78.                 <div class="tbf_left">Your tip<span class="required_field">*</span></div><div class="tbf_right"><textarea name="tip_text" rows="3" cols="40" tabindex="2"></textarea></div>
  79.             </div>
  80.             <div class="spacer"></div>
  81.             <div class="tbf_row">
  82.                 <div class="tbf_left">URL</div><div class="tbf_right"><input type="text" value="" name="tip_link_url" tabindex="3"><span class="tip_description"><br>Enter the URL to a Web page that supports your tip.</span></div>
  83.             </div>
  84.             <div class="spacer"></div>
  85.             <div class="tbf_row">
  86.                 <div class="tbf_left">Linked text</div><div class="tbf_right"><input type="text" value="" name="tip_link_label" tabindex="4"><span class="tip_description"><br>Enter the name of the page linked above.</span></div>
  87.             </div>
  88.             <div class="spacer"></div>
  89.             <div class="tbf_row">
  90.                 <div class="tbf_left">Your name<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_name" tabindex="5"></div>
  91.             </div>
  92.             <div class="spacer"></div>
  93.             <div class="tbf_row">
  94.                 <div class="tbf_left">Your email<span class="required_field">*</span></div><div class="tbf_right"><input type="text" value="" name="tip_reader_email" tabindex="6"></div>
  95.             </div>
  96.             <div class="spacer"></div>
  97.             <div class="spacer"></div>
  98.                 <div class="tbf_wide"><span class="fine_print"><span class="required_field">* indicates required fields</span></span></div>
  99.             <div class="spacer"></div>
  100.             <div class="tbf_row">
  101.                 <div class="tbf_wide_extra_top"><span class="fine_print">To help us avoid automated posts and spam, please enter the words below.</span></div>
  102.             </div>
  103.             <div class="spacer"></div>
  104.             <div class="tbf_row">
  105.                 <div class="tbf_wide"><div id="ts_recaptcha"></div></div>
  106.             </div>
  107.             <div class="spacer"></div>
  108.             <div class="tbf_row">
  109.                 <div class="tbf_wide"><input type="submit" value="Preview Your Tip" name="preview_tip" onClick="fill_preview('tipbits_enclosure_preview', 'ts', this.form); return false;" tabindex="7"> <input type="submit" value="Send Us Your Tip!" name="submit_this_tip" onClick="handle_tip_submission('ts', '', this.form, 'tip'); return false;" tabindex="8"></div>
  110.             </div>
  111.             <div class="spacer"></div>
  112.             <div class="tbf_row">
  113.                 <div class="tbf_wide"><span class="fine_print">When you submit a tip, you give us permission to use it. Read <a href="javascript:void(0)" onClick="generic_show_hide('tip_terms')">our terms</a> for more details. All submissions are reviewed before publication.</span></div>
  114.             </div>
  115.             
  116.             <div class="tbf_row" id="tip_terms" style="display: none">
  117.                 <div class="tbf_wide"><span class="fine_print">Our terms: By submitting a tip, you agree to assign TidBITS Publishing Inc., a non-exclusive, worldwide, perpetual license to reproduce, publish, and distribute your tip in connection with the TidBITS Web site and associated products in any media. You agree that you created the content you submitted, and that you have the right to assign us this license. You give us permission to use your name, but your email address won't be publicly displayed or shared. We review all submissions before publication, and reserve the right to select which submissions we feel are appropriate for our readers and to edit those we publish.</span></div>
  118.             </div>
  119.             <div class="spacer"></div>
  120.             </form>
  121.         </div><!-- end tip_box_form -->
  122.     </div><!-- end tip box innards -->
  123.     </div><!-- end tip box format -->
  124.     
  125.     <div class="x_close" id="ts_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('ts', 'ts', ''); return true;">Close</a></div>
  126.     
  127. </div><!-- end tip_submit box-->
  128.  
  129. <div class="popup_box_with_captcha" id="article_reference" style="display:none"><div class="article_ref_format"><textarea style="width:350px; height:100px;" name="article_ref" id="article_ref_box"></textarea></div>    <div class="x_close" id="article_reference_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('article_reference', 'article_reference', ''); return true;">Close</a></div>
  130. </div>
  131.  
  132. <div class="popup_box_with_captcha" id="comm" style="display:none">
  133.     <div class="tip_box_format">
  134.     <div id="comment_thanks" style="display:none" onClick="close_popup_thanks('comment_thanks', 'comm')"><br>Thanks for submitting a comment! Please check your email for a link that, when clicked, will verify that you're a real person and cause your comment to appear immediately. <div class="x_close" id="comment_upper_right"><a href="javascript:void(0)" onmousedown="close_popup_thanks('comment_thanks', 'comm'); return true;">Close</a></div></div>
  135.     <div id="comm_innards" onClick="close_popup_thanks('comment_thanks', 'comm')">
  136.         <div class="tip_box_head" id="comm_headline">Post a Comment</div>
  137.         <div class="tip_box_form">        
  138.                 
  139.             <div class="tbf_row" id="comm_message_box" style="display:none">
  140.                 <div class="tbf_wide"><div class="tbf_alert" id="comm_top_message"></div></div>
  141.             </div>
  142.             <div class="spacer"></div>
  143.  
  144.             <form action="foobar.cgi" method="get" name="post_comment" id="post_comment">
  145.             <input type="hidden" name="comment_nest" value=''>
  146.             <input type="hidden" name="comment_id" value=''>
  147.             <input type="hidden" name="article_id" value=''>
  148.             <input type="hidden" name="edit" value=''>
  149.             <div class="tbf_row">
  150.                 <div class="tbf_left">In reply to</div>
  151.                 <div class="tbf_right">
  152.                     <div id="cb_quoted_row">
  153.                         <div class='cb_open_quote'>“</div>
  154.                         <div id="cb_quoted"></div>
  155.                         <div class='cb_close_quote'>”</div>
  156.                     </div>
  157.                     <div class="spacer"></div>
  158.                 </div>
  159.             </div>
  160.             <div class="spacer"></div>
  161.  
  162.             <div class="tbf_row">
  163.                 <div class="tbf_left" style="padding-top:0">Your comment</div>
  164.                 <div class="tbf_right"><textarea tabindex="1" name="cb_item_add" id="cb_item_add" rows="4" cols="50" onKeyDown="count_insert('cb_item_add','cb_char_count')"></textarea><br><div class="cb_char_count" id="cb_add_count">Remaining characters: <span id="cb_char_count">0</span></div></div>
  165.             </div>
  166.             <div class="spacer"></div>            
  167.  
  168.             <div class="tbf_row">
  169.                 <div class="tbf_left">Your name</div><div class="tbf_right" style="margin-top:8px"><input tabindex="2" type="text" value="" name="cb_add_name" id="cb_add_name" style="margin-top: -4px"></div>
  170.             </div>
  171.             <div class="spacer"></div>
  172.             
  173.             <div class="tbf_row">
  174.                 <div class="tbf_left">Your email</div><div class="tbf_right"><input tabindex="3" type="text" name="cb_add_email" id="cb_add_email"></div>
  175.             </div>
  176.             <div class="spacer"></div>
  177.             
  178.             <div class="tbf_row">
  179.                 <div class="tbf_left"> </div><div class="tbf_right"><input id="comm_post_comment" tabindex="4" type="submit" value="Post Comment" name="submit_this_comment" style="width:100px; float:right" onClick="cb_post_submit(); return false;"></div>
  180.             </div>
  181.             <div class="spacer"></div>
  182.             
  183.             <div class="tbf_row" id="comment_terms">
  184.                 <div class="tbf_wide"><span class="fine_print">Our terms: We reserve the right to edit or delete any comment, so please post thoughtfully. We use your email address <i>only</i> to send you a one-time verification message confirming that you posted this comment. We also store your address to allow you to verify using other Web browsers in the future. For more info, see our <a href="http://db.tidbits.com/privacy.html">privacy policy</a>.</span></div>
  185.             </div>
  186.             <div class="spacer"></div>
  187.  
  188.             </form>
  189.         </div><!-- end comm_form -->
  190.     </div><!-- end comm box innards -->
  191.     </div><!-- end comm box format -->
  192.     
  193.     <div class="x_close" id="comm_upper_right"><a href="javascript:void(0)" onmousedown="HidePopupContent('comm', 'comm', ''); return true;">Close</a></div>
  194.     
  195. </div><!-- end comm_submit box-->
  196.  
  197.  
  198. <!-- start mainbody -->
  199. <div id="mainbody">
  200.  
  201. <!-- start header -->
  202. <div id="header">
  203.  
  204.  
  205.  
  206.     <div id="tblogo">
  207.     <a href="/"><img src="/images/tblogo20_01.gif" alt="TidBITS: Apple News for the Rest of Us" width="177" height="84" border="0"></a>
  208.  
  209.     </div><!-- end tblogo -->
  210.  
  211.  
  212. <!-- leaderboard ad -->
  213. <div id="top_banner">
  214. <script type='text/javascript'><!--// <![CDATA[
  215.     OA_show(3);
  216. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe5f7021'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=3&n=TBe5f7021'></a></noscript>
  217. </div><!-- end top_banner style -->
  218. <!-- end leaderboard ad -->
  219.  
  220.  
  221. </div><!-- end header  -->
  222.  
  223.  
  224. <!-- start content_container -->
  225. <div id="content_container">
  226.  
  227.  
  228. <!-- begin leftcolumn -->
  229. <div id="leftcolumn">
  230.  
  231. <!-- begin leftnav /left navigation -->
  232. <div>
  233.     <ul class="leftnav">
  234.         <!-- start search -->
  235.         <li class="topcorner">
  236.             <form action="http://db.tidbits.com" method="POST" name="search_form"><input type="hidden" name="advanced_search" value=''><input type="text" name="search_text" size="8" maxlength="70" value="Search" onFocus="this.value=''" onBlur="if (this.value == '') { this.value = 'Search'; }"> <span style="margin: 0 5px 0 5px; vertical-align: -2px"><span style="vertical-align: -2px"><input type="image" name="submit_search" src="/images/go_search_button.gif"></span>  <img src="/images/adv_search_button.gif" title="Click for Advanced Search" onClick="var f = document.search_form; f.search_text.value =''; f.advanced_search.value = '1'; f.submit();"></span></form>
  237.         </li>
  238.     </ul>
  239. </div>
  240. <!-- end search -->
  241.  
  242. <!-- Get TidBITS box (temp) -->
  243. <div>
  244.     <ul class="leftnav">
  245.         <li class="gettb"><strong>Get TidBITS via...</strong></li>
  246.     
  247.         <li><a href="http://www.tidbits.com/list" title="Subscribe via email" class="gettb">Email <img src="/images/gettb_button_email.gif" width="12" height="12" border="0" class="nav_img" alt="Email subscription options"></a></li>
  248.         <li><a href="/feeds/tidbits.rss" title="Subscribe via RSS" class="gettb">RSS <img src="/images/feed-icon-12x12.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe via RSS"></a></li>
  249.         <li><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=276986548" title="Subscribe to the podcast" class="gettb">Podcast <img src="/images/feed-icon-12x12_podcast.gif" width="12" height="12" border="0" class="nav_img" alt="Subscribe to the postcast"></a></li>
  250.         <li><a href="http://www.twitter.com/TidBITS" title="Get Article Updates via Twitter" class="gettb">Twitter <img src="/images/feed_icon_12x12_twitter.png" width="12" height="12" border="0" class="nav_img" alt="Get Article Updates via Twitter"></a></li>
  251.         <li><a href="http://www.facebook.com/pages/TidBITS/195314925519" title="Go to the TidBITS Page at Facebook" class="gettb">Facebook <img src="/images/feed_icon_12x12_facebook.gif" width="12" height="12" border="0" class="nav_img" alt="Go to the TidBITS Page at Facebook"></a></li>
  252.     </ul>
  253. </div>
  254. <!-- end Get TidBITS box -->
  255.     
  256.     <ul class="leftnav">
  257.         <li><a href="/" class="tabhead">TidBITS Home</a></li>
  258.  
  259.         <li><a href="javascript:void(0)" title="Sections" class="tabhead" onClick="return showhide('articleslist')">Sections <span id="articleslist_triangle"><img src="/images/nav_triangle_open.gif" width="9" height="9" border="0" class="navtriangle" id="articleslist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  260.     
  261.     
  262.     </ul>
  263.  
  264. <div id="articleslist" style="display: none"><ul class="leftnav"><li><a href="/section/business" >Business Apps</a></li>
  265. <li><a href="/section/entertainment" >Entertainment</a></li>
  266. <li><a href="/section/links" >External Links</a></li>
  267. <li><a href="/section/home" >Home Macs</a></li>
  268. <li><a href="/section/inside" >Inside TidBITS</a></li>
  269. <li><a href="/section/iphone-ipad-ipod" >iPhone iPad iPod</a></li>
  270. <li><a href="/section/fun" >Just for Fun</a></li>
  271. <li><a href="/section/macs" >Macs & Mac OS X</a></li>
  272. <li><a href="/section/creative" >Media Creation</a></li>
  273. <li><a href="/section/net" >Networking</a></li>
  274. <li><a href="/section/opinion" >Opinion</a></li>
  275. <li><a href="/section/support" >Problem Solving</a></li>
  276. <li><a href="/section/security" >Safe Computing</a></li>
  277. <li><a href="/section/tech" >Tech News</a></li>
  278. <li><a href="/section/watchlist" >Watchlist</a></li>
  279. </ul></div>
  280.  
  281. <div>
  282. <ul class="leftnav">
  283.     <li><a href="javascript:void(0)" onClick="return showhide('stafflist')" title="Staff" class="tabhead">Staff <span id="stafflist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="stafflist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  284. </ul>
  285. </div>
  286.  
  287. <div id="stafflist" style="display:block"><ul class="leftnav"><li><a href="/author/Adam+C+Engst" title="Adam Engst, Publisher">Adam Engst</a></li>
  288.     <li><a href="/author/Tonya+Engst" title="Tonya Engst, Editor in Chief">Tonya Engst</a></li>
  289.     <li><a href="/author/Jeff+Carlson" title="Jeff Carlson, Managing Editor">Jeff Carlson</a></li>
  290.     <li><a href="/author/Joe+Kissell" title="Joe Kissell, Senior Editor">Joe Kissell</a></li>
  291.     <li><a href="/author/Glenn+Fleishman" title="Glenn Fleishman, Contributing Editor">Glenn Fleishman</a></li>
  292.     <li><a href="/author/Mark+Anbinder" title="Mark Anbinder, Contributing Editor">Mark H. Anbinder</a></li>
  293.     <li><a href="/author/Matt+Neuburg" title="Matt Neuburg, Contributing Editor">Matt Neuburg</a></li>
  294.     <li><a href="/author/Rich+Mogull" title="Rich Mogull, Contributing Editor">Rich Mogull</a></li>
  295.     <li><a href="/author/Lex+Friedman" title="Lex Friedman, Staff Writer">Lex Friedman</a></li>
  296.     </ul>
  297.     </div>
  298.  
  299. <div>
  300. <ul class="leftnav">
  301.  
  302.     <li><a href="javascript:void(0)" title="Issues" class="tabhead" onClick="return showhide('issuelist')">Weekly Issues <span id="issuelist_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="issuelist_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  303. </ul>
  304. </div>
  305.  
  306. <div id="issuelist" style="display:none"><ul class="leftnav"><li><div class="special"><form method="post" action="noaction.cgi" onsubmit="return false" id="issue_search_form" name="issue_search_form">Issue # <input type="text" onkeydown="if (event.keyCode == 13) { redirect_issue(this.form); }" id="issue_searchvalue" name="issue_number" style="width:35px; height: 10px"> <input onclick="redirect_issue(this.form)" type="image" name="submit_search" src="/images/go_search_button_blk.gif"></form></div></li><li><A HREF="/issue/1045" >#1045, 20 Sep 10</A></li>
  307. <li><A HREF="/issue/1044" >#1044, 13 Sep 10</A></li>
  308. <li><A HREF="/issue/1043" >#1043, 06 Sep 10</A></li>
  309. <li><A HREF="/issue/1042" >#1042, 30 Aug 10</A></li>
  310. <li><A HREF="/issue/1041" >#1041, 23 Aug 10</A></li>
  311. <li><A HREF="/issue/1040" >#1040, 16 Aug 10</A></li>
  312. <li><A HREF="/issue/1039" >#1039, 09 Aug 10</A></li>
  313. <li><A HREF="/issue/1038" >#1038, 02 Aug 10</A></li>
  314. <li><A HREF="/issue/1037" >#1037, 26 Jul 10</A></li>
  315.  
  316.  
  317. <li><a href="/backissues">Back Issues</a></li></ul></div>
  318.  
  319.  
  320. <div>
  321. <ul class="leftnav">
  322.  
  323.     <li><a href="/tidbitstalk" title="TidBITS Talk" class="tabhead">TidBITS Talk</a></li>
  324. </ul>
  325. </div>
  326.  
  327.  
  328.  
  329. <div>    
  330. <ul class="leftnav">
  331.     <li><a href="javascript:void(0)" onClick="return showhide('abouttidbits')" title="About TidBITS" class="tabhead">About TidBITS <span id="abouttidbits_triangle"><img src="/images/nav_triangle_closed.gif" width="9" height="9" border="0" class="navtriangle" id="abouttidbits_tri_image" alt="Click to show or hide the contents of this section."></span></a></li>
  332. </ul>
  333. </div>
  334.  
  335. <div id="abouttidbits" style="display:none">
  336. <ul class="leftnav"><li><a href="/about.html" title="About TidBITS">About Us</a></li><li><a href="/account.html" title="Account Help">Account Help</a></li><li><a href="/advertising.html" title="Advertise with TidBITS!">Advertise</a></li><li><a href="/contact.html" title="Contact Info">Contact</a></li><li><a href="/copyright.html" title="Copyright Terms">Copyright</a></li>
  337. </ul>
  338. </div>
  339.  
  340. <div>
  341. <ul class="leftnav">
  342. <li class="bottom"> </li>
  343. </ul>
  344. </div>
  345. <!-- end leftnav/left navigation -->
  346.  
  347. <!-- making sure nav elements hide/show before page loads --><script type="text/javascript"><!--
  348.     showhide('articleslist','show'); 
  349. // --></script>
  350.  
  351. <!-- begin sponsor_sidebox -->
  352.  
  353. <div class="sponsor_sidebox">
  354.  
  355. <ul>
  356.  
  357. <li><a href="http://www.usefulfruit.com/tb">Useful Fruit</a></li>
  358.  
  359. <li><a href="http://crashplan.com/ref/tidbits.html">CrashPlan</a></li>
  360.  
  361. <li><a href="http://www.webcrossing.com/">Web Crossing</a></li>
  362.  
  363. <li><a href="http://www.smilesoftware.com/">Smile</a></li>
  364.  
  365. <li><a href="http://www.tidbits.com/about/support/contributors.html">Readers Like You!</a></li>
  366.  
  367. <li><a href="http://nuance.com/dragon/mac">Nuance</a></li>
  368.  
  369. <li><a href="http://markspace.com/bits?source=tidbits">Mark/Space</a></li>
  370.  
  371. <li><a href="http://macte.ch/conf_tidbits">MacTech Conference</a></li>
  372.  
  373. <li><a href="http://www.econtechnologies.com/tb">Econ Technologies</a></li>
  374.  
  375. <li><a href="http://www.smithmicro.com/tidbits">Smith Micro</a></li>
  376.  
  377. <li><a href="http://www.thedatarescuecenter.com/">The Data Rescue Center</a></li>
  378.  
  379. </ul><div class='sponsor_sidebox_bottom'> </div>
  380. </div>
  381.  
  382.  
  383. <!-- end sponsor_sidebox -->
  384.  
  385.  
  386. </div> <!-- end leftcolumn div -->
  387.  
  388. <!-- end left column -->
  389.  
  390.  
  391. <!-- begin centercolumn_border -->
  392.  
  393. <div id="centercolumn_border">
  394.  
  395. <div class="center_top">Thoughtful, detailed coverage of the Mac, iPhone, and iPad, plus the best-selling <a href="http://www.takecontrolbooks.com/?pt=TB-TAGLINE" style="color:yellow">Take Control</a> ebooks.</div>
  396.  
  397. <!-- begin centercolumn -->
  398. <div id="centercolumn">
  399.  
  400.  
  401.  
  402. <!-- begin rightcolumn_container -->
  403. <div id="rightcolumn_container">
  404.  
  405. <!-- begin rightcolumn -->
  406.     <!-- rightcolumn is embedded within centercolumn so featured text wraps around it -->
  407.     <div id="rightcolumn">
  408.  
  409. <p class="top"> </p>
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. <!-- Watchlist items -->
  421. <div class="tearoffbox_wide_container">
  422. <div class="tearoffbox_wide_watchlist">
  423. <p class="tearoffbox_wide_top_watchlist"> </p>
  424.  
  425. <h6><a href="/section/watchlist">TidBITS Watchlist</a></h6>
  426. <ul>
  427.  
  428. <LI><a href="/article/11625">Adobe Flash Player 10.1.85.3</a></LI>
  429.  
  430. <LI><a href="/article/11622">DEVONthink and DEVONnote 2.0.4</a></LI>
  431.  
  432. <LI><a href="/article/11620">Security Update 2010-006</a></LI>
  433.  
  434. <LI><a href="/article/11619">TinkerTool 4.2</a></LI>
  435.  
  436. <LI><a href="/article/11618">Mailplane 2.2</a></LI>
  437.  
  438. <LI><a href="/article/11617">Pro Applications Update 2010-02</a></LI>
  439.  
  440. <LI><a href="/article/11611">Dialectic 1.7</a></LI>
  441.  
  442. <LI><a href="/article/11604">Transmit 4.1.1</a></LI>
  443.  
  444. <LI><a href="/article/11603">MarsEdit 3.1.1</a></LI>
  445.  
  446. <LI><a href="/article/11600">Savescreenie 2.0</a></LI>
  447.  
  448. </ul>
  449.  
  450. <div class="tearoffbox_wide_bottom_watchlist"> </div>
  451.  
  452. </div><!-- end tearoffbox_wide -->
  453.  
  454. </div><!-- end tearoffbox_wide_container for watchlist items -->
  455.  
  456. <!-- begin tearoff box wide -->
  457.  
  458. <div class="tearoffbox_wide_container">
  459. <div class="tearoffbox_wide_tips">
  460.  
  461. <div class="tip_display">
  462. <div class="tips_sponsor_logo">
  463.  
  464. </div>
  465. <h6>Viewing Wi-Fi Details in Snow Leopard</h6>
  466. <p><p>In Snow Leopard, hold down the Option key before clicking the AirPort menu. Doing so reveals additional technical details including which standards, speeds, and frequencies you're using to connect, as well as what's in use by other networks. With the Option key held down and with a network already joined, the AirPort menu reveals seven pieces of information: the PHY Mode, the MAC (Media Access Control) address, the channel and band in use, the security method that's in use, the RSSI (Received Signal Strength Indication) measurement, the transmit rate, and the MCS Index. In Leopard, some, but not all, of these details are revealed by Option-clicking the AirPort menu.</p></p>
  467.  
  468. </div>
  469.  
  470. <div class="tearoffbox_wide_bottom_tips">
  471. <div style="padding-bottom:35px"><div class="tip_display" style="float:left"><p><br><a href="/tipbits/195">Link to this tip</a></p></div><div class="tip_display" style="float:right; width:150px">
  472. <p class="credit">Submitted by<br>Doug McLean</p>
  473. </div></div>
  474.  
  475. </div>
  476.  
  477. <div class="tearoffbox_wide_tips_submit">
  478. <form method="post" onsubmit="return false" id="tipbits_form" name="tipbits_form" action="noaction.cgi"><p><a href="javascript:void(0)" onmousedown="ShowTipBox('ts','ts_recaptcha', 50, 'tip_title_id'); return true;">Share your own tip!</a> | <a href="javascript:void(0)" onClick="generic_show_hide('search_tipbits'); document.tipbits_form.tipbits_searchvalue.focus()">Search TipBITS</a></p>
  479. <p style="display:none" id="search_tipbits"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue'); }" id="tipbits_searchvalue" name="tipbits_searchvalue"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue')">Search</a></p></form>
  480. </div>
  481. <div class="tearoffbox_wide_bottom_tips_submit">
  482.  
  483. </div>
  484.  
  485. </div><!-- end tearoffbox_wide_tips -->
  486. </div><!-- end tearoffbox_wide_container for tips-->
  487. <!-- end tearoff box wide -->
  488.  
  489.  
  490.  
  491. <!-- begin 300 x 250 ad -->
  492.  
  493. <div id="content_ad_square">
  494. <script type='text/javascript'><!--// <![CDATA[
  495.     OA_show(5);
  496. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TB7671f69'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=5&n=TB7671f69'></a></noscript>
  497. </div><!-- end 300 x 250 ad -->
  498.  
  499. <!-- TBTalk items -->
  500. <div class="tearoffbox_wide_container">
  501.  
  502. <div class="tearoffbox_wide_p">
  503. <p class="tearoffbox_wide_top_p"> </p>
  504.  
  505. <h5>Recent TidBITS Talk Discussions</h5>
  506. <ul>
  507.  
  508. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf95241">Alternatives to MobileMe for syncing calendars between iPad/Mac</a> (1 message)</LI>
  509.  
  510. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf94dbb">Free anti-virus for the Mac</a> (20 messages)</LI>
  511.  
  512. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf934e6">iTunes 10 syncing iPod Touch 4.1</a> (2 messages)</LI>
  513.  
  514. <LI><a href="http://emperor.tidbits.com/webx?50@@.3cf92a22">Thoughts about Ping</a> (16 messages)</LI>
  515.  
  516. </ul>
  517.  
  518. <div class="tearoffbox_wide_bottom_p"> </div>
  519.  
  520. </div><!-- end tearoffbox_wide -->
  521.  
  522. </div><!-- end tearoffbox_wide_container for TBtalk items -->
  523.  
  524. <!-- start takecontrol_ad -->
  525. <script type='text/javascript'><!--// <![CDATA[
  526.     OA_show(7);
  527. // ]]> --></script><noscript><a target='_blank' href='http://db.tidbits.com/ads/delivery/ck.php?n=TBe46d56f'><img border='0' alt='' src='http://db.tidbits.com/ads/delivery/avw.php?zoneid=7&n=TBe46d56f'></a></noscript><!-- end takecontrol_ad -->
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543. <div id="rightcolumn_bottom">
  544.  
  545. </div>
  546.  
  547.     </div><!-- end rightcolumn -->
  548.  
  549.  
  550. </div><!-- end rightcolumn_container -->
  551.  
  552.  
  553.  
  554. <!-- featured articles -->
  555.  
  556. <div id="center_ajax_sub" class="instapaper_body">
  557.  
  558. <!-- google_ad_section_start -->
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579. <!-- issue, article, or series -->
  580.  
  581.     
  582.     
  583.     
  584.         <!-- start pagehead -->
  585.         <div id="pagehead">
  586.         <h2>Series: Mac OS X and Unix</h2>
  587.         <p class="pagesubtitle">Chris Pepper examines the Unix underpinnings of Mac OS X - and their implications. </p>
  588.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('4869,4876')"><span id="showhide_arts_top">Show the full text of all articles</span></a>
  589.         </div><!-- end pagehead -->
  590.     
  591.     
  592.     
  593.         
  594.     <!-- show article(s) -->
  595.     <div class="article"><a name="4869"></a>
  596.     
  597. <!-- comment initialization routine as needed -->
  598. <div class="popup_box_with_captcha" id="hc_4869" style="display: none">
  599.     <div class="tip_box_format">
  600.     <div id="hc_innards_alt_4869" style="display: none">
  601.             <div class="tbf_row">
  602.                 <div class="tbf_wide_80" id="hc_small_response_4869"></div><div class="x_close_row" id="hc_upper_right1_4869"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4869', 'hc', '4869'); return true;">Close</a></div>
  603.  
  604.             </div>
  605.     </div>
  606.     <div id="hc_innards_4869">
  607.         <div class="tip_box_form">        
  608.             <form action="foobar.cgi" method="get" name="check_human_4869">
  609.             <div class="tbf_row">
  610.                 <div class="tbf_wide_80" id="hc_rc_4869">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_4869"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4869', 'hc', '4869'); return true;">Close</a></div>
  611.  
  612.             </div>
  613.             <div class="spacer"></div>
  614.             <div class="tbf_row" id="hc_message_box_4869" style="display:none">
  615.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4869"></div></div>
  616.             </div>
  617.             <div class="spacer"></div>
  618.             <div class="tbf_row">
  619.                 <div class="tbf_wide"><div id="hc_recaptcha_4869"></div></div>
  620.             </div>
  621.             <div class="spacer"></div>
  622.             <div class="tbf_row">
  623.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4869', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="6227"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  624.             </div>
  625.             <div class="spacer"></div>
  626.             </form>
  627.         </div><!-- end tip_box_form -->
  628.     </div><!-- end hum box innards -->
  629.     </div><!-- end tip box format -->
  630. </div><!-- end tip_submit box-->
  631.  
  632.  
  633.  
  634.         
  635.         
  636.         <!-- specific article details here -->
  637.         
  638.         
  639.             <p class="series_number">Article 1 of 2 in series</p>
  640.         
  641.     
  642.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  643.         
  644.         <div class="featured_meta"><div class="meta_article">04 Dec 2000 | <a href="/article/6227?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  645.  
  646.         <H2><a href="/article/6227">Unix Coming to a Mac Near You, Part 1</a></H2>
  647.  
  648.         <p class="byline">by <a href="/author/Chris%20Pepper">Chris Pepper</a> <a href="javascript:void(0)" onClick="document.check_human_4869.submit_type.value='email'; document.check_human_4869.author_id.value='267'; ShowTipBox('hc_4869', 'hc_recaptcha_4869')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  649.  
  650.         <!-- article text -->
  651.         <div id="article_blurb_4869"><p>With Mac OS X, Apple is building Unix into the Mac OS, and this has technical, social, and political ramifications for Mac users and the rest of the industry<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('4869')">Show full article</a></span></p></div>
  652.         <div id="article_text_4869" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4869')">Hide full article</a></p><P>With Mac OS X, Apple is building Unix into the Mac OS, and this has technical, social, and political ramifications for Mac users and the rest of the industry. To understand the implications of this change, let's take a look this week at the Unix family of operating systems and how they constitute a part of Mac OS X. In the next part of this article, I'll address how the fusion of these two operating systems will impact not only Mac and Unix users, but the computer industry as a whole.</P><P><STRONG>Unix 101: The History of the Machine</STRONG> -- In the beginning (or as far back as we want to go), there was Unix, which was originally developed at AT&T's Bell Labs. In many ways, Unix grew up in symbiosis with the C programming language, which became an important facet of its underlying philosophy - that programming is good for you. (For more information, see some of the resources provided by Dennis Ritchie, one of the creators of C, as well as an interesting timeline of the history of Unix). In sharp contrast, the Macintosh was revolutionary because of Apple's concept that computer users could be insulated from the underlying workings of their computers, and not have to be programmers. Apple's vision of the Mac OS was as a system for managing a computing appliance, whereas Unix was published as a research project with an open invitation to tinkerers.</P><P><<A HREF="http://www.cs.bell-labs.com/cm/cs/who/dmr/">http://www.cs.bell-labs.com/cm/cs/who/dmr/</A>><BR><<A HREF="http://perso.wanadoo.fr/levenez/unix/">http://perso.wanadoo.fr/levenez/unix/</A>><BR><<A HREF="http://db.tidbits.com/getbits.acgi?tlkthrd=1194">http://db.tidbits.com/getbits.acgi?tlkthrd=1194</A>></P><P>Over time, various companies and individuals contributed to Unix, each under their own licenses, some of which required payment for use. Several companies, most notably Sun Microsystems, licensed Unix to use as the basis of their own operating systems to run on their own computer hardware. There are now hundreds of derivatives of the original Bell Labs Unix. A crucial point in the development of Unix came when AT&T sued the University of California at Berkeley to halt distribution of Unix systems without paid licenses from AT&T, but the suit failed. After the settlement, Berkeley released the free and redistributable 4.4BSD-Lite (BSD stands for "Berkeley Software Distribution"), which contained no AT&T code and no licensing restrictions. The current BSD flavors of Unix - NetBSD, FreeBSD, OpenBSD, BSDI, and now Apple's Darwin - are all descendants of BSD-Lite.</P><P><<A HREF="http://www.oreillynet.com/pub/a/network/2000/03/17/bsd.html?page=3">http://www.oreillynet.com/pub/a/network/2000/03 /17/bsd.html?page=3</A>><BR><<A HREF="http://www.bsd.org/">http://www.bsd.org/</A>></P><P>During the 1980s, Richard Stallman formed the Free Software Foundation (FSF) to write a completely compatible Unix replacement, free of restrictive licensing requirements. In rejection of these licenses, the FSF created the GNU General Public License (GPL), which requires licensed software to be freely redistributable, and has a "viral" clause requiring that derivative works also be licensed under the GPL, and thus freely available and modifiable. The GNU (which stands for "GNU's Not Unix") project was highly successful in creating powerful tools, such as the ubiquitous gcc compiler and gzip compression program, now considered standard parts of Unix environments. The GNU operating system kernel, known as Hurd, is still under development.</P><P><<A HREF="http://www.gnu.org/copyleft/gpl.html">http://www.gnu.org/copyleft/gpl.html</A>><BR><<A HREF="http://www.gnu.org/philosophy/philosophy.html#AbouttheGNUproject">http://www.gnu.org/philosophy/ philosophy.html#AbouttheGNUproject</A>><BR><<A HREF="http://www.fsf.org/software/hurd/hurd.html">http://www.fsf.org/software/hurd/hurd.html</A>></P><P>Linus Torvalds began the Linux project with a similar goal: to develop a free Unix-compatible kernel for Intel PCs, without license encumbrances. To ensure that Linux would be free, it was also licensed under the GPL. An operating system kernel isn't useful by itself, so Linux distributions combine Linux kernels with other free GNU and non-GNU components to build complete operating systems. Thus the FSF's goal of a free Unix-like operating system was attained, though not quite as its founders expected.</P><P><<A HREF="http://www.gnu.org/gnu/linux-and-gnu.html">http://www.gnu.org/gnu/linux-and-gnu.html</A>></P><P>Linux is generally portrayed as a better, faster, and more stable server alternative to Windows NT/2000. In contrast, BSD Unix rarely crops up in casual conversation, but its users consider it better and more stable than relative newcomer Linux. A number of high-profile Web sites, such as Yahoo and MCI, apparently share this conviction and rely on BSD-backed Web servers.</P><P><STRONG>The Mac OS X Layer Cake</STRONG> -- Although Apple is introducing Unix to millions of Mac users through Mac OS X, you don't need to start memorizing Unix commands to use it (in fact, you'll have to work to see the Unix command line at all). However, it will be helpful to have a working knowledge of how Unix fits into the inner workings of your Mac.</P><P>Think of Mac OS X as a three-layer cake, borrowing its basic recipe from the NeXTstep operating system, leavened with components of Mac OS 9. The lowest level is derived from Carnegie Mellon University's Mach microkernel research project, which interacts with the hardware and helps different parts of the next level up communicate with one another, and the BSD kernel, which provides facilities such as networking, device drivers, and file systems - HFS+ and UFS (Universal or Unix File System) are included in Mac OS X. Within Darwin, the second level is a fairly standard Unix environment, including tools ranging from the ls program that lists files and the cp program that copies files, to the aforementioned gzip and the Apache Web server. These two layers are available now from Apple, packaged together as the free open source Darwin operating system.</P><P><<A HREF="http://www.cs.cmu.edu/afs/cs.cmu.edu/project/mach/public/www/mach.html">http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ mach/public/www/mach.html</A>><BR><<A HREF="http://www.publicsource.apple.com/projects/darwin/">http://www.publicsource.apple.com/projects/ darwin/</A>><BR><<A HREF="http://db.tidbits.com/article/05994">http://db.tidbits.com/article/05994</A>></P><P>Darwin is a fully capable Unix-like operating system on its own, but it's limited in comparison to the Mac OS. In particular, Darwin lacks graphics capabilities entirely - in a typical Unix system those would be provided by the X Window System, but Darwin can only display text on the connected monitor. Apple has released Darwin as open source, so people with recent Macs who want to run BSD-style Unix now have another free option (projects such as OpenBSD and NetBSD also support many Macintosh hardware configurations). Darwin has already drawn some attention in the computer industry, but it's mostly relevant for Mac users, since several mature BSD options for Intel-based PCs already exist. It remains to be seen whether people will actually use Darwin as an independent product, but it may find popularity on slightly older machines or in dedicated server environments.</P><P><<A HREF="http://www.x.org/">http://www.x.org/</A>><BR><<A HREF="http://www.macosxinfo.org/kernel.html">http://www.macosxinfo.org/kernel.html</A>><BR><<A HREF="http://www.openbsd.org/">http://www.openbsd.org/</A>><BR><<A HREF="http://www.netbsd.org/">http://www.netbsd.org/</A>></P><P>Confusingly, Apple uses the name Darwin for several related projects which have different releases but the same source code: the self-contained Darwin operating system package and the bottom layer of Mac OS X. Direct access to Unix applications on a Mac OS X system is entirely optional, which makes the system much more palatable for Mac users who prefer to avoid Unix. But double-clicking the Terminal program included in Mac OS X Public Beta invokes a command line, giving full access to Unix functionality, just like logging into a machine running the free Darwin operating system.</P><P><<A HREF="http://db.tidbits.com/getbits.acgi?tlkthrd=1188">http://db.tidbits.com/getbits.acgi?tlkthrd=1188</A>></P><P>The second and third levels of the Mac OS X layer cake, not included in the free Darwin package, are the proprietary code that makes it a Macintosh operating system with a graphical interface: the QuickDraw and Quartz graphic environments that programs use to draw to the screen and the whole set of Application Programming Interfaces (APIs) that enable Macintosh programs (as opposed to Unix programs) to run. The main APIs in Mac OS 9 are collectively called the Macintosh Toolbox. Mac OS X includes a much larger set of overlapping APIs, due to its hybrid Unix/NeXT/Apple heritage.</P><P>Classic applications rely on the venerable QuickDraw for display of text and graphics. Carbon applications can use Apple's new Quartz display engine, but QuickDraw remains available to them as well, and so they'll probably stick with QuickDraw as long as developers want to provide a single application file that can run under both Mac OS 9 and Mac OS X. Cocoa applications rely entirely on Quartz, which is based on Adobe's Portable Document Format (PDF), and provides improved capabilities for print and layout. In addition, Mac OS X also provides OpenGL and QuickTime, which may help availability and performance of games and scientific computing software for Macs.</P><P>Macintosh programs that can run under Mac OS X come in three main flavors: Carbon, Classic (existing Mac OS 9 programs), and Cocoa. New and updated programs which use Carbon are full-fledged Mac OS X applications and take advantage of Mac OS X's protected memory and preemptive multitasking. Current programs run under Mac OS 9 within the Classic environment, providing compatibility with existing software. And Cocoa programs rely on a set of APIs originally derived from NeXTstep, so Mac OS X can run NeXTstep-derived programs.</P><P>The frosting on this layer cake is a new graphical design for Mac OS X, called Aqua. All Carbon and Cocoa applications in Mac OS X use Aqua, which specifies larger text and buttons, heavy usage of anti-aliased text and transparency, and a new set of design guidelines for windows, menus, and other interface elements. As a result, Mac OS X applications are prettier and livelier, with correspondingly increased demands on processor power and screen size. Specifically, Mac OS X effectively requires a minimum screen resolution of 800 by 600 pixels, while Mac OS 9 was usable at 640 by 480 pixels. (Also see "A Quick Dip into Aqua, the Mac OS X Interface" in <A HREF="http://www.tidbits.com/tb-issues/TidBITS-513.html">TidBITS-513</A>.)</P><P><<A HREF="http://www.apple.com/macosx/technologies/inside.html">http://www.apple.com/macosx/technologies/ inside.html</A>><BR><<A HREF="http://db.tidbits.com/article/05773">http://db.tidbits.com/article/05773</A>></P><P>Okay, let's see if we can put it all together - this diagram may look more like a game of Hack than a layer cake, but it should give you an overview of where everything fits. Remember there's no graphical environment under BSD Unix in Darwin.</P><PRE>  | (Platinum)  |       (Aqua)       |   |   (Text)   |  +-------------+----------+---------+   +------------+3 |   Classic   |  Carbon  |  Cocoa  |   |  BSD Unix  |\  +-------------+----+-----+---------+   +-----++-----+ \2 |     QuickDraw    |   Quartz      |         ||        (Darwin)  +------------------+---------------+---------++-----+ /1 |                 Mach+BSD kernel                   |/  +---------------------------------------------------+</PRE><P>To continue our analogy, the Mac OS X Public Beta available now includes candles on the cake - user applications (both included with Mac OS X and installed by users), which use either the Platinum (Classic) or Aqua appearance, depending on the APIs to which they're written. Bundled applications include the Finder/Desktop, Internet Explorer, Mail, Sherlock, System Preferences, an MP3/CD player, and others. The whole installation provides approximately the same feature set as Mac OS 9, but as you'd expect in a beta, some of the new components are more primitive than the mature ones from Mac OS 9. The best example of this is the new Dock, which replaces Mac OS 9's Apple and Application menus and desktop, but doesn't offer the same level of flexibility as the older tools in Mac OS 9.</P><P>As a Macintosh system, the most obvious changes in Mac OS X are the visual interface - Aqua - and the file system layout. The underlying system is already more stable, but this is a less obvious change. Classic Mac developers are beginning to move their software to Carbon, and as they do so they will begin to take advantage of Carbon's new capabilities and advantages. For those interested in exploring further, there's a wealth of new territory. NeXT developers are quickly moving over to Mac OS X, and adapting their applications for Cocoa. Darwin's Unix environment provides a whole new range of capabilities, particularly in the areas of networking and programming. This is foreign ground for many Mac users, but the potential is considerable.</P><P>In the next installment of this article, I'll talk about how the computer industry stands to be affected by Mac OS X's merger of an underlying Unix structure with the qualities that make a Macintosh.</P><P>[Chris Pepper is a systems administrator in New York, and he's just delighted that his "personal" Mac workstations are now running Unix like the servers he coddles for a living. Check out his Mac OS X Software and Information site for more on Apple's new operating system.]</P><P><<A HREF="http://www.mosxsw.com/">http://www.mosxsw.com/</A>></P><!-- Unix Coming to a Mac Near You, Part 1 Chris Pepper --></div>
  653.         <div id="article_text_bottom_4869" style="display:none">
  654.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4869')">Hide full article</a></p><div class="sponsorbox">
  655. <div class="sponsortext"><A HREF="http://www.tidbits.com/about/support/contributors.html"><IMG SRC="http://db.tidbits.com/images/badges/tb-house-ad.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>READERS LIKE YOU! Support TidBITS with a contribution today!<BR /><<a href="http://www.tidbits.com/about/support/contributors.html">http://www.tidbits.com/about/support/contributors.html</a>><BR />Special thanks this week to John & Nichola Collins, Chris Williams,<BR />John K. Lilley, and Honeymoons By Sunset for their generous support!
  656. </div>
  657. </div>
  658. <div class="sponsorbox_bottom"> </div>
  659. </div>
  660.  
  661.         <!-- end article text -->
  662.     
  663.         
  664.  
  665.         
  666.     </div><div class="article"><a name="4876"></a>
  667.     
  668. <!-- comment initialization routine as needed -->
  669. <div class="popup_box_with_captcha" id="hc_4876" style="display: none">
  670.     <div class="tip_box_format">
  671.     <div id="hc_innards_alt_4876" style="display: none">
  672.             <div class="tbf_row">
  673.                 <div class="tbf_wide_80" id="hc_small_response_4876"></div><div class="x_close_row" id="hc_upper_right1_4876"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4876', 'hc', '4876'); return true;">Close</a></div>
  674.  
  675.             </div>
  676.     </div>
  677.     <div id="hc_innards_4876">
  678.         <div class="tip_box_form">        
  679.             <form action="foobar.cgi" method="get" name="check_human_4876">
  680.             <div class="tbf_row">
  681.                 <div class="tbf_wide_80" id="hc_rc_4876">To help us avoid automated posts and misuse of our site, please enter the words below.</div><div class="x_close_row" id="hc_upper_right2_4876"><a href="javascript:void(0)" onmousedown="HidePopupContent('hc_4876', 'hc', '4876'); return true;">Close</a></div>
  682.  
  683.             </div>
  684.             <div class="spacer"></div>
  685.             <div class="tbf_row" id="hc_message_box_4876" style="display:none">
  686.                 <div class="tbf_wide"><div class="tbf_alert" id="hc_top_message_4876"></div></div>
  687.             </div>
  688.             <div class="spacer"></div>
  689.             <div class="tbf_row">
  690.                 <div class="tbf_wide"><div id="hc_recaptcha_4876"></div></div>
  691.             </div>
  692.             <div class="spacer"></div>
  693.             <div class="tbf_row">
  694.                 <div class="tbf_wide"><input type="submit" value="Submit" name="submit_this_tip" onClick="handle_tip_submission('hc', '4876', this.form, this.form.submit_type.value); return false;"><input name="calling_routine" type="hidden"><input type="hidden" name="getbits" value="6234"><input type="hidden" name="author_id"><input type="hidden" name="submit_type" value=""></div>
  695.             </div>
  696.             <div class="spacer"></div>
  697.             </form>
  698.         </div><!-- end tip_box_form -->
  699.     </div><!-- end hum box innards -->
  700.     </div><!-- end tip box format -->
  701. </div><!-- end tip_submit box-->
  702.  
  703.  
  704.  
  705.         
  706.         
  707.         <!-- specific article details here -->
  708.         
  709.         
  710.             <p class="series_number">Article 2 of 2 in series</p>
  711.         
  712.     
  713.         <article_link><script type="text/javascript">open_if_linked('')</script></article_link>
  714.         
  715.         <div class="featured_meta"><div class="meta_article">11 Dec 2000 | <a href="/article/6234?print_version=1">Print <span class="shift_up"><img src="/images/printer_icon.gif" alt="Printer-Friendly Version of This Article" border="0" width="9" height="10"></span></a></div></div>
  716.  
  717.         <H2><a href="/article/6234">Unix Coming to a Mac Near You, Part 2</a></H2>
  718.  
  719.         <p class="byline">by <a href="/author/Chris%20Pepper">Chris Pepper</a> <a href="javascript:void(0)" onClick="document.check_human_4876.submit_type.value='email'; document.check_human_4876.author_id.value='267'; ShowTipBox('hc_4876', 'hc_recaptcha_4876')"><span class="shift_down"><img src="/images/gettb_button_email.gif" height="12" width="12" border="0" alt="Send Email to Author"></span></a></P>
  720.  
  721.         <!-- article text -->
  722.         <div id="article_blurb_4876"><p>With Mac OS X, Apple is bringing Unix to a large, new audience. In part one of this article, I offered a brief history of Unix and mapped out how Unix will provide the basis of Mac OS X<span class="readmore_series"><a href="javascript:void(0)" onClick="return showhide_article('4876')">Show full article</a></span></p></div>
  723.         <div id="article_text_4876" style="display:none"><p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4876')">Hide full article</a></p><P>With Mac OS X, Apple is bringing Unix to a large, new audience. In part one of this article, I offered a brief history of Unix and mapped out how Unix will provide the basis of Mac OS X. The Macintosh user community is comprised of well over 25 million people, so as Apple paves a new path - even if most don't follow it immediately (or ever) - the implications for the industry are significant. Apple's last major change of direction, the iMac, introduced translucent colors, a strikingly original case design, USB, the removal of floppy disks and serial ports, and Internet access as a major feature. The iMac had a profound impact on the whole industry - even PC and PDA users without iMacs were affected by the iMac's endorsement of colors and USB. To understand Apple's latest decisions behind Mac OS X and its impact, it's necessary to examine Mac OS X, Unix, and the industry as a whole.</P><P><<A HREF="http://db.tidbits.com/article/06227">http://db.tidbits.com/article/06227</A>></P><P><STRONG>Competition Makes Strange Bedfellows</STRONG> -- In this industry, the dominant player is obvious: Microsoft. In fact, Microsoft is so much larger and more entrenched than any other company, including Apple, that they're almost a feature of the landscape. All Apple's plans for years have been made around the realities of playing with, against, and off of Windows PCs. As it turns out, this is just as true for Linux and BSD Unix  users - perhaps even more so, because the PCs that Linux and BSD generally run on can (and often do) also run Windows. This raises an interesting question: are Apple and users of Unix-based systems natural allies, trying to carve different niches from the Windows market? It would seem that by basing Mac OS X on BSD Unix, at least Apple is endorsing this view.</P><P>Despite their fundamental differences, the Mac OS and Unix have a number of interesting similarities. Both platforms are shadowed by Microsoft's dominance but boast vigorous support within their own communities. The Mac OS and Unix have to "fit in and stand out," and success is often determined by how well they integrate with Windows. Windows can't (without the addition of a utility like Mediafour's MacDrive 2000) read Mac or Unix file formats or disk formats, but Macs and many Unix systems can both read Windows (FAT) floppies and hard disks. In contrast, Windows has so much market share that various "private" Microsoft technologies, such as the Word .doc file format and the Win32 APIs, have become de facto standards. In turn, Macs and Unix machines support these Microsoft-originated technologies to varying degrees, with Mac OS features like File Exchange and third-party products like Thursby Software's DAVE, which enables Macs to do Windows file sharing. The Mac OS and Unix must offer major advantages to be considered in spite of compatibility issues and have to take a much more open attitude towards compatibility and interoperability.</P><P><<A HREF="http://www.mediafour.com/">http://www.mediafour.com/</A>><BR><<A HREF="http://www.thursby.com/products/dave.html">http://www.thursby.com/products/dave.html</A>></P><P>Because the capability to run other operating systems, particularly Windows, is so valuable, emulators are popular on Macs and Unix machines. Full emulators like Virtual PC provide all the capabilities of a foreign computer system, allowing other operating systems to run within the emulator. In this way, Virtual PC can run Windows, Linux, and other operating systems intended for Intel-based PCs. An alternative is to replicate only the operating system's functionality with a replacement compatibility layer. This approach is popular on PCs, where the processors are the same, so emulating just Windows, instead of a whole PC, provides a workable system. This is also how the Classic environment in Mac OS X works, and how the free Mac-on-Linux project runs Mac OS 8.6 and later under Linux on PowerPC-based computers.</P><P><<A HREF="http://www.connectix.com/products/vpc4.html">http://www.connectix.com/products/vpc4.html</A>><BR><<A HREF="http://www.maconlinux.org/">http://www.maconlinux.org/</A>></P><P>Unix is often seen as the operating system for serious computer experts. At the other end of the continuum, Macs are "computers for the rest of us". Together, Unix and the Mac OS bracket Microsoft's huge lump in the bell curve of platform usage. Macs and Unix often differentiate themselves from Windows on the same issues, but take opposite tacks in doing so. Examples of such divergence include the Mac's ease of use, tight hardware-software integration, and - until now - unified control over hardware and operating system development; in contrast, Unix supporters tout advantages such as flexibility, control, broad hardware support, and reliance on open source projects.</P><P><STRONG>Real World Differences</STRONG> -- Despite these similarities, we shouldn't lose sight of the fact that the Mac OS and Unix are in many ways utterly different. Unix has a long and distinguished history as a collaborative research project and programming environment. Over the years, it has matured into a robust and efficient networking platform, while remaining excellent as a development environment. In obvious contrast, Apple considers Macs to be powerful appliances, or sometimes technological agents, but doesn't expect users to develop software or explore the system. As open source advocates love to point out, Unix development is a worldwide and long-running effort, so Unix is very mature in their terms - stable and fast. On the other hand, Mac OS 9's maturity is visible in its consistency among applications and its well-honed interface. This is part of why the recent QuickTime and Sherlock interfaces (and many of the changes in Mac OS X's interface) cause such dismay among Mac users - they throw years of interface improvement and familiarity out the window, abandoning a long history of deliberate and incremental improvement in favor of novelty and glitz.</P><P>Over its long history, Unix has developed an extensive stable of software, especially in the networking, programming, and security arenas. "Productivity" applications, however, are much less common on Unix than on Macs and Windows, where they're staples - used by millions of people each day. A quick glance at the Freshmeat Linux/Unix software release site shows a wealth of programming tools, servers, and hacks, but little in the word processing, publishing, and spreadsheet areas. This makes a lot of sense when you remember that Linux machines can also run Windows, so many Linux users may also be using Microsoft Office under Windows on the same machines they use for Linux, or on secondary machines or client workstations, reserving the Unix machines as servers or programming environments. This is something of a self-fulfilling prophecy - because Unix is so impoverished in business software, Unix users generally require additional systems for such work, and because they have alternatives, there's less demand for these applications on Unix. As a result, Unix remains an excellent server platform, with notably different usage patterns than Mac OS and Windows.</P><P><<A HREF="http://freshmeat.net/">http://freshmeat.net/</A>></P><P><STRONG>Grand Unixification</STRONG> -- With Mac OS X, Apple has done a fair job of reconciling these two worlds in a brand-new combination, and an excellent job of isolating them enough that users can remain within a single familiar environment if desired. There are rough edges (particularly the three different views of the file structure: Mac OS 9/Classic, the slightly different Mac OS X layout, and the NeXT/Unix structure), but when Mac OS X is running, it's easy to ignore the Unix aspects, and remain in a familiar Mac environment with bigger icons, different buttons, and a much more limited Desktop.</P><P>This is apparently Apple's expectation for most users - that they will completely ignore the underlying Darwin layer, while still benefiting from its stability and performance. Alternatively, if you use the included Terminal program to log into the Darwin environment, you encounter a fairly normal Unix installation (except that, again, files are in strange places - a leftover from Mac OS X's NeXT heritage).</P><P>In additional to trying to create a unified system, Apple is also trying to move the proprietary work NeXT did on NeXTstep back into the BSD/Unix mainstream. Apple has repeatedly stated that their goal is to use as much generic BSD code as possible, thus saving time and money for maintenance of proprietary Apple software. As part of this process, Apple has released Darwin under an open source license, which means the program code is available for non-Apple developers to see, critique, and modify. In licensing terms, Mac OS X consists of two parts. The Darwin code is public and free, and the rest (the graphical and Mac-specific parts) is proprietary. This is a reasonable division, as Apple's focus has never been robust core operating system functionality, but rather the user interface. If taking Darwin open source proves successful [and comments from Darwin developers at MacHack 2000 seemed to indicate it already has been -Adam], Apple will garner significant development support from other developers, helping to improve the Darwin foundation for Mac OS X, and freeing more Apple developers to focus on Apple's strengths.</P><P>This split between the open source foundation and proprietary upper layers gives Apple what they've been desperately seeking for years: a version of the Mac OS that includes all the buzzwords important for a good, fast, stable operating system. BSD is stable and features preemptive multitasking, and provides excellent virtual memory and crash protection. Apple's hope is that existing Macintosh users will appreciate these features, and that they'll also attract a new class of users: serious network users and server administrators. With Mac OS X, Apple is taking a stride towards making the Mac an excellent server platform - even for serving Windows users. Plus, with high-bandwidth Internet connections becoming available and popular, Apple might just be on the cusp of empowering another leap in self-publishing. Mac OS X now includes Apache, gcc, cron, ssh, mainstream Perl, and a whole slate of Unix-based staples which were simply unavailable for Macs before, or required interface hacks and significant porting effort to run on the Mac. Mac OS X with Apache is already a much better personal server platform than Windows 98 or Microsoft's new Windows Me.</P><P><<A HREF="http://www.microsoft.com/windowsme/">http://www.microsoft.com/windowsme/</A>></P><P><STRONG>What Does Unix Mean to Me?</STRONG> Historically, Macs have had limited support for the latest Internet protocols and security tools. Although Mac OS 9 has an excellent track record for security, and there are several excellent mail, Web, FTP, and news clients, Macs have been too small a population to garner the same level of support as Windows from many vendors. This results in fewer options for virtual private networks (VPNs), PPP over Ethernet (PPoE, required for many cable and DSL ISPs), and similar networking tools and utilities. Mac OS X brings Unix-based tools to fill these needs. In many areas, this move should help eliminate the problems of being a niche player which have plagued the Mac OS for years.</P><P>The union of the Mac OS with Unix also has interesting sociopolitical implications for Mac users in the larger industry. With the Apple and Apple II, Apple made computers much more affordable and accessible to individual users. With the original Power Macintoshes, Apple became the only high-volume RISC (Reduced Instruction Set Computing, a design model that enabled PowerPCs to be so much faster than the previous Motorola 68000 series) computer vendor, bringing a major speed improvement to its users. If Mac OS X is even somewhat successful, within a year it will more than double the number of computer systems running BSD-based operating systems, even though Mac OS X users won't see their computers as Unix systems.</P><P>It will be interesting to see if and how Apple uses this new leverage into the Unix world, and if Apple takes advantage of the power of Unix directly, or instead restricts its focus to Aqua-based graphical applications. Thanks to hybrid applications, Apple may not have to make the choice. The FizzillaMach Web browser, for instance, uses a Carbon front end with an Aqua interface, but the standard Unix-based Mozilla back end for high-performance threaded networking. In the future, I hope to see Mac developers using the powerful Unix utilities included in Darwin from their Mac applications, perhaps through AppleScript scripts that pass text from Carbon to command-line programs like grep, sed, and wget, (which find matches, find and replace text, and get Web pages and sites, respectively) returning results to the Mac applications.</P><P><<A HREF="http://www.mozilla.org/ports/fizzilla/">http://www.mozilla.org/ports/fizzilla/</A>></P><P>Apple is bringing us into the Unix world, like it or not. It is important to remember that Mac OS X's Darwin foundation offers major advantages for Mac users in two very different areas. First, it provides much better reliability and power than Mac OS 9, almost invisibly. Even users who completely ignore Darwin will silently benefit from its robustness and performance. Second, Darwin provides access to the tools and operating system facilities that make Unix so powerful, like shell scripting and networking tools.</P><P>Each user of Mac OS X will have to make their own decisions on whether and how much to venture beyond familiar Macintosh territory into the domain of Unix, but the capability will always be there. For me, at least, it's been the beginning of an exciting journey.</P><P>[Chris Pepper is a Linux and Solaris system administrator in New York, and he's just delighted that his Mac workstations are now running Unix like the servers he coddles for a living. If you want Chris to coddle <EM>your</EM> servers, check out his resume and contact him directly. His Mac OS X Software and Information site has links to useful information and a few Unix ports for Apple's new operating systems.]</P><P><<A HREF="http://www.reppep.com/~pepper/resume/">http://www.reppep.com/~pepper/resume/</A>><BR><<A HREF="http://www.mosxsw.com/">http://www.mosxsw.com/</A>></P><!-- Unix Coming to a Mac Near You, Part 2 Chris Pepper --></div>
  724.         <div id="article_text_bottom_4876" style="display:none">
  725.         <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_article('4876')">Hide full article</a></p><div class="sponsorbox">
  726. <div class="sponsortext"><A HREF="http://www.smithmicro.com/tidbits"><IMG SRC="http://db.tidbits.com/images/badges/StuffItDeluxe2010.gif" ALT="" HEIGHT="50" WIDTH="50" BORDER="0" ALIGN="left"></A>StuffIt Deluxe 2011 has everything you need to backup, encrypt,<br />share, and compress all of your photos, audio and documents.<br />Compress it. Secure it. Send it. Try StuffIt Deluxe 2011 today!<br />Click here for a free 30-day trial: <<a href="http://stuffIt.com/tidbits/">http://stuffIt.com/tidbits/</a>></div>
  727. </div>
  728. <div class="sponsorbox_bottom"> </div>
  729. </div>
  730.  
  731.         <!-- end article text -->
  732.     
  733.         
  734.  
  735.         
  736.     </div><!-- end show article -->
  737.     
  738.     
  739.     <p class="showhide_all_series"><a href="javascript:void(0)" onClick="return showhide_all_articles('4869,4876')"><span id="showhide_arts_bottom">Show the full text of all articles</span></a>
  740.  
  741.  
  742. <!-- article_plus end -->
  743. <!--
  744. </DIV>
  745. --><!-- end main_column DIV -->
  746.  
  747.  
  748. <!-- google_ad_section_end -->
  749.  
  750. </div><!-- end center AJAX insert -->
  751.  
  752. <!-- TipBITS Search Results Lozenge -->
  753. <div id="tipbits_results_loz" style="display:none">
  754. <form method="post" onsubmit="return false" id="tipbits_form_loz" name="tipbits_form_loz" action="noaction.cgi">
  755. <div class="tip_footer">
  756. <p id="search_tipbits_loz"><input type="text" onkeydown="if (event.keyCode == 13) { search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz'); }" id="tipbits_searchvalue_loz" name="tipbits_searchvalue_loz"> <a href="javascript:void(0)" onClick="search_tipbits('tipbits_searchvalue_loz', 'tipbits_results_loz')">Search</a></p>
  757. </div>
  758. <div class="tip_footer_bottom">
  759.  </div>
  760. </form>
  761. </div><!-- end TipBITS Search Results lozenge -->
  762.  
  763.  
  764.  
  765.  
  766. <!-- begin footer -->
  767. <div id="footer">
  768.  
  769.  
  770. <p>Special thanks to <a href="http://www.forest.net/">digital.forest</a>, our
  771. Web and mailing list host.</p>
  772.  
  773. <p>TidBITS is copyright © 2010 TidBITS Publishing Inc.</p>
  774. <p>Reuse governed by <a href="http://www.tidbits.com/terms/">Creative Commons License</a>.</p>
  775.  
  776. <p><a href="/about.html" title="About TidBITS">About TidBITS</a> | <a href="/account.html" title="Account Help">Account Help</a> | <a href="/advertising.html" title="Advertise with TidBITS!">Advertise with TidBITS!</a> | <a href="/contact.html" title="Contact Info">Contact Info</a> | <a href="/copyright.html" title="Copyright Terms">Copyright Terms</a></p>
  777.  
  778. </div><!-- end footer -->
  779.  
  780.  
  781. </div> <!-- end centercolumn -->
  782.  
  783. <div class="center_bottom"> </div>
  784.  
  785. </div> <!-- end centercolumn_border -->
  786.  
  787.  
  788. </div> <!-- end content_container -->
  789.  
  790. </div> <!-- end mainbody -->
  791.  
  792.  
  793. <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  794. </script>
  795. <script type="text/javascript">
  796. _uacct = "UA-276924-3";
  797. urchinTracker();
  798. </script>
  799. <script type="text/javascript"
  800. src="http://tidbitscom.skimlinks.com/api/skimlinks.js"></script>
  801. <script type="text/javascript">
  802. var skimlinks_pub_id = '2559X585851';
  803. var skimlinks_domain = 'go.tidbits.com';
  804. skimlinks();
  805. </script>
  806. </body>
  807. </html>
  808.  
  809.