Sunday, July 7, 2013

Mac Linux USB Loader v1.1 Consumer Preview

For all of you wondering what the last month or so of coding has meant for Mac Linux USB Loader, you are in luck! I am, as of now, officially releasing a consumer preview of version 1.1 of Mac Linux USB Loader! You can download it here on SourceForge.

Version 1.1 is mainly a small release with bug fixes, but there is one important new feature that I'm beta testing right now: the automatic USB device blesser. On OS X, a drive can be "blessed" to instruct the firmware to boot it - it can be on any drive at any path, and not just at /efi/boot/. Mac Linux USB Loader uses this feature of Macs in an important new way: it allows your Mac to automatically boot your USB stick whenever it is plugged in - no more holding down the Option key is required.

This feature remains optional and can be accessed via a new option called Modify Boot Settings on the main panel:


After you click the Modify Boot Settings option, the following sheet will pop down:



Just select your USB drive that has an installation of a Linux distribution created by Mac Linux USB Loader, press the Bless button, enter your administrator password, and viola! - when you restart your Mac with the USB stick in the drive, it'll boot up automatically into your installed Linux distribution. Of course, the Unbless button does the exact opposite.

Again, if you want to try out this feature, you can download the preview here. Please note that this is an unstable release, and if something goes wrong, I assume no liability*.

* - Worst case scenario: your boot priorities are screwed up, in which case, just Option boot into OS X and from Terminal type (you'll need your root password, which by default should be your admin password):

sudo bless --mount / --setBoot

Sunday, June 30, 2013

Mac Linux USB Loader Starred 50 Times on GitHub!

Mac Linux USB Loader was recently starred for the 50th time. Thanks everyone for your continued support - it lets me know that this tool is needed and keeps me going on development.

Also, thanks to everyone who posted articles on Mac Linux USB Loader, added it to Softpedia, and wrote about it on Wikipedia. You guys are the best!

Tuesday, June 11, 2013

Xcode 5


Apple just yesterday revealed the interface to the next iteration of Xcode 5, Apple's premier development IDE. It can, unfortunately, sometimes break compatibility with older Xcode versions. But a lot of things are hopefully much easier now. I look forward to trying it and I hope you all try it out.

Monday, June 10, 2013

A Demonstration of the UNIX fork() Call

UNIX's fork() call is a fantastic way to have one executable divide itself into two processes, each of which can perform different code from a single codebase. It is also useful for apps that should be started from a command line but shouldn't be vulnerable to being killed with Control-C or the death of the shell. This is how daemons work in UNIX/Linux/OS X. I believe (though I may be mistaken) that this is the basis of Google Chrome's multi-process browsing feature.

 //  
 // fork.c  
 //  
 // Created by SevenBits on 4/14/13.  
 //  
 // This demonstrates how to fork a process. Basically, what happens is, one  
 // process will fork itself, creating a cloned process. The return value of  
 // the fork() call can be used to direct one process to perform one task,  
 // and the clone to perform another! Inter-process communication is also  
 // possible.  
 #include <stdio.h>  
 #include <unistd.h>  
 #include <stdlib.h>  
 int main() {  
   printf("We're going to fork ourselves. This will spawn multiple processes,");  
   printf(" which will each count from 1 to 100 in a different process.\n");  
   pid_t pid = fork();  
   int i;  
   switch (pid) {  
     case -1:  
       printf("ERROR! Something went wrong!\n");  
       return 1;  
       break;  
     case 0:  
              for (i = 0; i < 100; i++) { // This runs in one process.  
                printf ("A: %d\n", i);  
         sleep(1);  
              }  
       break;  
     default: // This runs in another process (the parent).  
              for (i = 0; i < 100; i++) {  
                printf ("B: %d\n", i);  
         sleep(2);  
              }  
       break;  
   }  
   return 0;  
 }  

I officially place this code in the public domain. Do whatever.

Friday, May 31, 2013

Mac Linux USB Loader 1.0 Finally Released!


This, my friends, is the window of an application's final release. Mac Linux USB Loader is now at 1.0! Read the release notes here!

Development will continue as usual. Sorry 1.0 took so long, but you know how it goes. :) Well, see you at 2.0!