Life’s Adventures

My apologies to anyone that is following this blog who may have wondered where I disappeared to and whether I had vanished or lost interest in AROS.  I can assure you that is not the case.  🙂

A year ago, I moved from Arkansas to the Seattle, Washington area for a new job.  For various family and personal reasons, I needed to move back to Arkansas.  Thankfully, my new employer was understanding and I’ve been able to switch from a local office employee to a remote employee.  It doesn’t hurt that about half of my team, and many other employees, work remotely.  Our company is a global software company with offices around the world, so the concept of everyone working “9 to 5” does not apply at all.

However, the transition back to Arkansas was a challenging one.  I decided to load everything in a u-haul trailer and move myself, primarily because I need my car and all of the other options weren’t feasible at the time.  Luckily my wife flew to Seattle to help me drive back to Arkansas.  Even so, the transition has been more challenging than I ever anticipated.

I’m not quite as settled as I’d like to be, but I’m getting there.  Hopefully I’ll have time to resume my hacking soon.

On a positive note, I did receive an email confirming that I’m on the AmigaOne X5000 mailing list for U.S. customers and that a U.S. reseller should be contacting me soon.  While I am anxious to break my A1000’s out of their storage prison, I’m also eager to play with some of the newer Amiga inspired technology.  One of these days I may even have a Pi based device running AROS.  🙂

Hopefully I’ll be posting more of my hacking adventures and discoveries here soon.  Don’t leave just yet!

Advertisements

Giving Slax a test drive…

Although my love of computers started with Commodore, I’ve used Windows nearly exclusively for the last 20 years.  While there are things that I don’t like about Windows, I’ve enjoyed using most versions since Windows 95.  Under the hood, Windows 10 is an amazing operating system.  You just have to hack on the UI a bit to get a decent desktop experience, luckily there are lots of blog posts and utilities that help here.  Although I’m still running Windows 7 on every machine that I own or have control over.

While looking at other operating systems, there are two things that I am looking for.  The first is a rich, fully functional environment for development, internet usage, documents and office related work, and so on.

The other is a minimal, yet easy to use, operating system that can be more like the software in thousands of various electronic appliance and gadgets that just does what I need it to do, and unless you stop to think about it, you don’t even realize it is there.  I’m very interested in the various retro gaming systems people are putting together.  I remember way back when a few shops started building custom arcade cabinets and putting MAME boxes in them.  But today, lots of enthusiasts and hackers are putting together their own gaming systems, and that is something that I’m very interesting in doing myself.  Although I could buy something “pre-built”, I don’t know exactly what I want and I want to be able to maintain and improve it on my own.  So I need to build it myself.

Which is why I wanted to take Slax for a test drive.  Yes, I’ve finally gotten to the point of this post.  🙂  Slax is a lightweight Linux distribution based on Slackware.  I like the philosophy behind Slax, in that it is intended to be very easy to use and very modular.  Some system level items like network firmware can be installed without rebuilding the kernel.  All applications and utilities are “modules”, which are different from typical Linux packages.  A Slax module is neither decompressed nor is it installed.  It is kept on disk in its packed form.  You “activate” a module to use it.  The module is then mounted into the file system.  Behind the scenes, I assume it is decompressed to memory, perhaps a ram disk, but I haven’t dug in that much yet.

Indeed, getting/launching/using supported application is very easy.  However, administration tasks require a good bit of Linux administration knowledge and experience. Although Slax is not updated frequently, there are massive incompatibilities between versions.  This makes finding the correct solutions online difficult.  I searched for instructions for solving two tasks: installing Slax to a hard drive and configuring wireless networking.

No, that first one isn’t a typo.  As odd as it seems, Slax is primarily intended to run from a live CD.  If Slax worked out as the base OS for a retro gaming system, that wouldn’t be a bad thing.  A DVD could include the OS, emulators, gaming front-ends, native games, utilities, and more.  Everything that a retro gaming hacker would want.  The problem is, I need a modifiable environment that I can build and tweak, which would then be made into a live CD.

There are various instructions for installing to a hard disk.  I found instructions that seemed official, several blog or forum posts from Slax users with possible solutions, a script that was supposed to do it, and a Slax module (of all things) that was supposed to do it.  Each of these applied to an earlier version of Slax and were completely useless for version 7.  There are for making a bootable USB Slax 7 install, and that does provide persistence between sessions.  I decided I could try that and, if I liked Slax like I expected to, hopefully I could find a solution to move it to a hard disk later.

With Slax now bootable from USB, I gave it a spin outside of VMware.  Any emulator provides some advantages.  One primary advantage is that the guest network is a common network configuration, using a fairly well known “chipset” that requires a fairly common driver.  Essentially something that almost always just works without any effort on your part.  At least that has been my experience.

Booting to my native hardware though, I realized that I needed to figure out how to configure wireless networking, from the driver for the wireless nic to the wireless configuration itself, including security and encryption.  During this challenge, I became frustrated not only with Slax, but once again with its roots: Slackware.

Although I don’t have much Linux experience, I’ve been exposed to Linux almost since its root (sorry).  One of my high school friends found out about it early on, before the kernel version took the leap to 0.95.  You couldn’t do much with it then, so it didn’t interest me at the time.  But over several months, he kept using Linux and more stuff became available for it.  Back then there was a huge computer flea market of sorts in downtown Dallas, called First Saturday or something like that, due to it occurring on the first Saturday of the month.  I came across a 2 CD set of Slackware 3.0 and picked it up, both out of my own curiosity and to share it with my friend.  Although it didn’t have anything he wanted and didn’t already have.  🙂

Slackware attempts to be as close to Unix as Linux can be, being very selective in the official packages provided.  I’m fairly sure it is intended more for Linux gurus that would rather pull everything out of GitHub and build it themselves, nightly probably.  Perhaps I’m being over critical.  The moral is, don’t even consider looking at Slackware if you don’t know how to administer Linux, including rebuilding the kernel and/or firmware.

I was about to stop looking at Slax when I found the answer to one of my first questions: How to install Slax to a hard drive.  With Slax 7, the steps are almost the same as installing to USB, which is nice.  Although I had to use another distribution to create and format a partition and then copy Slax to it.  If there is a way to do this from Slax itself, I couldn’t figure it out.  I don’t understand why this isn’t a common task that has a solution already available within the live CD environment, but it isn’t.

Just as the initial frustrations were resolved and I was able to really start playing with Slax, I found that Slax 7 is too unstable to use.  I could have done something wrong, although there aren’t many places a mistake could be made.  For some reason, applications stopped launching.  There would be a flash in the task bar like the app was going to launch, but then it immediately disappeared.  It was particularly frustrating since the installed web browser, a port of Firefox, was one of the applications would not launch.  Sure, I could take the time to investigate further, but I was looking for something that was already stable that I could use for my project and, if successful, contribute anything that may be of value back to the community for anyone else to use.

I attempted to create an account on the Slax forums so I could post some questions.  Unfortunately the CAPCHA used during the registration process refused to show me the image containing whatever numbers or characters I was supposed to type to prove I am human, so that wasn’t an option either.

Not that I mind hacking, troubleshooting, and solving problems.  I quite enjoy it.  But I don’t like doing it alone or without any support whatsoever.  And I’m a lot more interested in hacking on AROS than Linux, once I get past the distraction of finding other interesting and usually related projects that I want to take a quick peak at.  😉

Menuet and Syllable Desktop

Menuet is a very small, lightweight operating system that is written in 100% assembly language and still fits on a floppy disk.  Although I would not expect to use Menuet frequently, I was curious enough to take a look.  Unfortunately, I can’t get Menuet to boot in VMware and I’m not interested enough to try other techniques.

Syllable Desktop is another lightweight operating system, inspired by AmigaOS and BeOS, and as such it is definitely one that I’d like to look at.  Architecturally, it has some technical features that AROS lacks.  While Syllable Desktop would not divert my interest in AROS, I would be interested in having a running environment and following the progress of the operating system.

Unfortunately, I can’t get it to boot under VMware Player either.  I tried a few hardware variations, such as IDE versus SCSI versus SATA hard disk controllers.  I came across articles that people had Syllable Desktop running in VMware 4.  I’ve also read about various incompatibilities between different versions of VMware, so my guess is that Syllable Desktop does not work in newer versions of VMware.

I’m sure that I’ll give it a spin in the other emulators that I have available for testing, as I’d really like to get it going.  I might even try installing it on native hardware.  But it is going on the back burner for now, as I’m only casually interested in these other alternatives.  A small distraction that I needed to get past before I could continue hacking around on AROS.

Haiku

Haiki is a re-implementation of  BeOS, much like AROS is a re-implementation of AmigaOS.  BeOS was an advanced operating system for its time, much like AmigaOS (although we know the OS is just one part of Amiga’s greatness).  BeOS suffered the fate of most “small shop” operating systems, even those that are better than the current offerings.  Microsoft and Apple already had the home computer operating system market wrapped up.  And if you didn’t want an operating system from a big commercial monopoly, Linux was already a popular alternative.  BeOS couldn’t seem to stir up enough interest to keep the product going.  At least, that was my opinion at the time, as a casual user/observer.

Haiki has a lot of neat features that are unique to Haiki.  Most of those were in BeOS as well, although they may have been improved in Haiki.  One of the features that I find most interesting is that the end-user can customize much of the Haiki experience without knowing anything about programming.

The file system is one example.  Each file has attributes such as size and date created.  But you can create any attribute you want.  You could create a folder named :”Recipies”, then create a new file type for that folder called “Cuisine”, and then give the attribute a set of values such as “Mexican”, “Italian”, “Under 15 Minutes”, “Great Dessert”, and so on.  Each file in the folder would be a separate recipe.  By creating Recipe specific attributes and applying them to the files, recipes can be searched and located very quickly without searching the file contents themselves.  In today’s world of social media, think of it as hashtags for your file system, which you have complete control over.

There are lots of other neat features, including:

  • Replicants are small, self-contained parts of an application that can be integrated into other applications or the user’s desktop.  An application’s replicant may be “torn off” and placed on the desktop, then the original application may be closed and the replicant will keep working.  Sort of like the various desktop widgets and gadgets that are common today, although they’re integral and integrated with an installed application.
  • “Stack and Tile” is a neat way to actually “stack” desktop windows on top of one another.  All windows have the same size and are contained inside a single “window” from the user’s perspective, with tabs along the top for each application.  Very similar to opening multiple tabs in most web browsers.  Although you can “stack” any and all applications together.  The OS handles it.  The applications don’t even know they are “stacked”.
  • “Workspaces” are essentially multiple desktops.  Not multiple monitor support, but multiple desktops using a single monitor, if you will.  I know Linux and/or x-windows has supported something like this for years.  From what little I’ve used Haiki, this feature is very well implemented.  It is very quick and efficient to switch between workspaces and to move windows between workspaces.

Because BeOS was designed to work on newer processors than the 68000, it has some low level OS “stuff” that AROS lacks, such as being able to use multiple processor cores and memory protection.

In summary, there is a lot that I like about Haiki.  If I didn’t have any other interests, I would probably keep playing with it.  But there is a lot more that I like about AROS that Haiki doesn’t have, so I’ll shelf it for now and probably come back to take another look in a few years.

Distractions, distractions…

I’m a little OCD, especially when it comes to my interests and hobbies.  That can be a benefit at times, but more often it is a hinderance.  For example, when I recently re-discovered AROS, I searched the Internet for everything I could find about it.  I read a lot of it, but there is more that I haven’t read than what I have.  I’ve been trying to bookmark and categorize everything so I can refer back to it.

But when looking for AROS stuff, I came across other Amiga options, both hardware and software.  And of course I came across the retro “scene” in general.  I messed around with MAME and early Commodore 64 emulators in the mid 1990s, but I’ve been away for a while.  There is a lot of really cool stuff going on, thanks to some really creative and smart hackers.

Another area that has peaked my interest is alternative operating systems in general.  While I’ve set aside the temptation to jump into my Commodore collection for now, I am taking a break to look at the current state of several alternative operating systems.  Some of these have been around for a long time, and some of those I have looked at in the past.  But before rediscovering AROS, the last alternative operating system that I played with was BeOS, back when the company was still afloat and new versions were still being developed.

I’m going to write a few posts with my thoughts and opinions of the operating systems that I’ve looked at this week.  By the way, I’m trying each of these in VMware Player rather than native hardware.  Although later I may try a couple of my favorites on my MacBook (using Parallels or VirtualBox).

If there is one that I don’t mention that you feel is worth a look, please leave a comment and share some details and your experience with everyone else.  Since I mentioned BeOS already, my next post will be on Haiku.

 

So, now what?

I can build “hosted” AROS in both Linux (Debian) and MacOS X, and run the new build on in each respective platform.  I can also build AROS “native” and run it in a “bare” virtual machine.  I’m currently running “native” in a VirtualBox vm on my MacBook Pro, “MacOS X hosted” on my MacBook Pro, and “Linux hosted” in a Debian vm.  I’m currently running the Debian vm using VMWare Player on a Dell laptop.

I’ve put aside attempting to build or run AROS “hosted” under Windows.  I have cygwin installed, but I’m not sure I like it.  I don’t really want a *nix environment under Windows.  If I can be productive enough with either MacOS or Linux, I’d rather do any AROS related development using either of those platforms.

So I’ve taken a break from playing with AROS and I’ve been working to configure my MacBook and Debian environments to be useful (for me) on an ongoing basis.  I know how to do a few things in each, but I don’t know either platform anywhere close to as well as I know Windows.

I think Linux is an outstanding operating system, born out of inspiration and continually improved over the past 25+ years.  But I don’t have much experience with Linux.  It has been a small effort to get my Debian vm to the point that I can be productive and even enjoy using it.

I really like MacOS X, but I’m more of a casual Mac user than a power user.  If I’m going anything “serious” with my MacBook, I’m typically in Windows 7 running in Parallels.  After all, my MacBook Pro is the best Windows laptop that I’ve ever owned.  Between personal machines, work machines, and hand-me-downs, I’ve had more laptops than I can remember.

As user-friendly as MacOS and Mac applications are, they are a little too user-friendly at times.  Take for example the task of modifying “hidden system” files, such as the various “dot” Linux system files.  Before you can modify them, or even view their contents, you first have to figure out how to make them visible.  This is not a trivial task, although it seems that Apple listened to users struggling with that specific task.  So did they make the task more user-friendly?  I’ll let you be the judge.  Here is a quote from another blogger’s post:

With the Finder as the foremost application, press shift-command-H, command-2, and then command-J, which will bring up a window that configures Finder view options. Check the “Show Library Folder” and close the window. Thanks to the Apple engineers that made this process more user-friendly.

Configuring Mac OS X on Yosemite & Mavericks (Hacker Codex)

Shift-Command-H, followed by Command-2, then Command-J, which then brings up a configuration window.

Thanks Apple.  Actually, thanks Funter (a small app that truly makes it simple to show or hide MacOS X system files).

 

What’s Next for my “Get AROS” Script?

I’m fairly happy with the script for now.  Although it does not do as much as the gimmearos script, I am much more familiar with my script.  🙂   And as I think of new stuff for the script to handle, I want the challenge of figuring it out and implementing it myself.

That said, I’ve already starting thinking of future improvements to my script as well as some tasks that may be better suited to their own script.

Local Deployment of New Build

The script currently does not copy the successful build to another location.  Sometimes I would want this, but I wouldn’t want it performed on every build.  For one, AROS may be launched from the target folder created during the build process.  So I can test and debug any changes before decided to deploy the build to more permanent home.  So I could add the “deploy build” as a decision for the user once the build is finished.  The script could prompt and allow the user to decide whether the new build should be deployed to a “final” location.  But for now it seems easier to copy it manually when I have a reason to.

Creating a Custom Distribution

I suspect I’ll also play around with creating a custom distribution.  I like the idea of creating custom distributions for specific needs.  For example, there could be AROS distributions for application development, productivity (mainly office and web applications), creating music, video editing, “modern” gaming, “retro” gaming, and who knows what else.  I’m not interested in creating distributions that are widely distributed or that I would maintain or support.  But I’m very interested in documenting the process as well as writing scripts or utilities to simplify and automate creating a distribution.  I see there being three primary “steps” involved:

  1. Getting current AROS source code and building AROS.
  2. Getting and building additional applications and libraries that should be pre-installed and configured based on the goal of the distribution.
  3. Copying AROS and the other applications and libraries to a new folder, which in the process will define the drawer and file layout of the AROS distribution.
  4. Creating a “Live” CD using this new AROS folder.  As with other “Live” CDs, AROS may be booted directly from the CD or may be installed to a hard drive.

I’ll probably include the steps for creating a bootable “Live” USB thumb drive as well, although those are less interesting to me.  I’m actually interested in creating complete distributions that come “pre-loaded” with everything you would want, based on the distribution chosen.  (Rather than having a single distribution that has everything installed in it.)

To Be Continued…

I may think of other improvements or tasks to script/automate as I hack around in AROS.  But these are the only two that I’ve thought of for now.  I wanted to go ahead and document them, both for my own benefit and hopefully to get feedback from other AROS hackers, or users even.  😉