Since its inception, LightCube Solutions has run on a custom-built Linux machine. Being a former LFS developer, I hail from the Linux world of ‘Do It Yourself’, and so I prefer to use self-configured servers, tuned and set exactly the way I like. This is no Fedora or Ubuntu where a host of unnecessary packages are forced on you and custom configuration files mask the generic and standard configuration files that come with the original software. This is ultimate flexibility.

But that flexibility does come at a price. Maintaining an LFS system can become a chore. Installing a new package always means compiling from source. Staying on top of security updates is entirely left to you. The system is only as good as your personal understanding of its internals. A balance somewhere in between would be ideal:

  1. A lightweight system that is known to be stable and secure.
  2. The possibility of complete configuration is given to the end user.
  3. The focus of the system is tight, and therefore higher quality (in terms of stability, functionality and reliability) can be achieved.
  4. All the while the system benefits from security updates and testing derived from a community of users and developers.

And so, having realized that I needed to move beyond my personal build scripts and start packaging the system (at the least, for my own sanity) it was decided to create a distribution based on our own needs for Linux-based web services. Voila! LightCube OS is born. The basic outline of the distro’s goals are this:

  • Provide a lightweight, fast, stable and secure LAMP application server.
  • As close as possible, adhere to the GNU principles of free software in the packaging and distribution of the system.
  • As nearly as possible, provide a ‘vanilla’ system. In other words, don’t create obscure custom configuration schemes. Allow as much manual configuration by the end users as possible.
  • Focus on packaging software that is reasonably used with production LAMP servers. (E.g., there’s no reason to build an X desktop environment for a server housed remotely and accessed mainly through ssh. Make the system geared towards advanced command line users. As much as a good GUI is nice, there’s no reason for a remote server to run one locally.)
  • Make the base system streamlined, optimized and small. While it is realistic to package a few variations of software (E.g., nano vs. vim, Exim vs. Postfix), the core system should focus on one basic set of core packages.

These are the main ideas behind LightCube OS. The build scripts and the core package specs are already under development. And the distro’s project site/infrastructure has been put in place: http://www.lightcubeos.org.¬†Volunteers are welcome to join in the development.

In the meantime, what are your thoughts concerning the above? What advantages/disadvantages do you see to such a distribution? Do you have any comments or suggestions that will help improve its appeal or usability? I welcome your comments…

If you have a Unix or Linux background, scripting should be second nature to you. Even ‘Windows Gurus’ usually do some little bit of automation with custom scripts. The power and flexibility that comes with the command line is hard to ignore, once you’ve tasted it. Still, those who have tasted both a Unix-type shell and the Windows command line will generally agree, Unix has the advantage here.

Although there are ways to do in Windows some of the things possible with Unix tools, it’s quite a bit more cumbersome. By taking advantage of Cygwin, you can bring that power and flexibility to Windows. A simple example of how I have used Cygwin alongside Windows tools involves Active Directory user creation, deletion and modification. The tools provided in Cygwin allow you to do advanced pattern matching and generate a list of users, file paths, etc., and then using the Bash shell, it is simple to create the logic necessary to call the Windows command line tools for modification of Active Directory. With the arsenal of useful tools that become available to Windows by using Cygwin, the possibilities for better automation grow considerably.

The Advanced Bash-Scripting Guide offers a great starting place for increasing your ability to write useful and powerful scripts.

No blog of mine would be complete without a reference of some sort to Linux From Scratch. If you’ve never heard of it before, Linux From Scratch (LFS) is an online community that produces a book containing instructions on how to create your own complete, functioning and customized Linux system by hand. As you follow the instructions in the book, you compile all the software from source code and manually create nearly every configuration file within your system.

Apart from creating a lightweight, reasonably secure, custom system and the pride of knowing that you made it all happen, as you go through the book you also get a good picture of what makes a Linux system tick.

Personally, because of the LFS project, my abilities in shell scripting and the Unix command line increased dramatically. This, in turn, led to my being able to contribute back to the project. I initiated the LFS LiveCD subproject, created and introduced to the community a program called jhalfs that automates the LFS building process (it has since been revised by a few talented individuals), and even helped develop the actual LFS book (a copy with some personal changes lives here). It was a fun ride.

LFS continues to receive good reviews as there appears to be many who enjoy the experience of customizing completely their own personal Linux system. Here’s a recent article that contains a fairly thorough review. The section on LFS begins on page 3.

In my first post (Light it up!), I mentioned that LightCube Solutions has an opportunity to pioneer an open source courseware application. Here are a few more details:
In a nutshell, the idea is to create a web application (at the moment it is powered by PHP and MySQL) that allows High School students to study content on their school’s intranet. Teachers will have access to add/create content and publish tests. When the students take the test, their scores are recorded in their profile. Teachers and other administrators can monitor their progress, scores, course history and so on. We want to keep it open source to allow a wider scope of input and collaboration.

Currently, the project is being organized here: http://www.lightcubesolutions.com/ScribbleAppTrac/
And a demo of the current code is here: http://www.lightcubesolutions.com/ScribbleApp/
The name of the project is likely to change, so stay tuned for more info.
JH