Configuration And Use
This section walks you through the process of setting up Snakeoil to get things running. This chapter is for reference only. Ideally you can get to use Snakeoil right off the bat without coming here.
We often hear and read random people on the Internet talk about how Audiophiles are spending tens of thousands on Audiophile Snakeoil. For better or worse you can be part of this "craze". The choice is in your hands - you can pay hundreds of dollars on commercial software, or you can use SnakeoilOS (built with open source software and tools) for free.
SnakeoilOS is built entirely on open source software, and is thus free to use. Free to use doesn't imply poor sound quality. Give SnakeoilOS a go and you just might be pleasantly surprised at the things it can do. If you are a retailer - you can even install SnakeoilOS on your gear and sell it (Just note the author of SnakeoilOS is not responsible for support, or any damage claim).
The Dashboard is the first content you'd see when you load up the Snakeoil OS WebApp. This page contains general system information, giving you the overall "health" of your Snakeoil OS. This is the place to get a "bird eye's view" of the state of your Snakeoil OS computer.
People say the darndest things. In here you'd see some of the more amusing and interesting audiophile related quotes. A new quote is shown every 30 seconds, if you are impatient hit the reload button in the top right to load a new quote immediately.
Snakeoil OS Version
Here you'd find the version of Snakeoil OS that's running on your computer (1.0.0 in the example), plus the underlying version of Ubuntu (16.04.02 LTS). You can click the "Check" button any time to connect to the Snakeoil OS server to find if there is a newer version of Snakeoil OS you can upgrade to. Refer to the "System" section of this manual to find out how to upgrade your Snakeoil OS computer.
Random-access memory (RAM /ræm/) is a form of computer data storage which stores frequently used program instructions to increase the general speed of a system. A random-access memory device allows data items to be read or written in almost the same amount of time irrespective of the physical location of data inside the memory. In contrast, with other direct-access data storage media such as hard disks, CD-RWs, DVD-RWs and the older drum memory, the time required to read and write data items varies significantly depending on their physical locations on the recording medium, due to mechanical limitations such as media rotation speeds and arm movement.
This panel gives you a quick overview of the general state and health of your memory subsystem. In most cases all your available RAM will be used as "cache". You'd need to add more RAM if you find more a very high number in the "used" row and very low values for both "free" and "cached". A good rule of thumb is to have around 50% of your memory in the cache field, but this is just a general guide as it's pretty much system dependent.
A central processing unit (CPU) is the electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic arithmetic, logical, control and input/output (I/O) operations specified by the instructions. The computer industry has used the term "central processing unit" at least since the early 1960s. Traditionally, the term "CPU" refers to a processor, more specifically to its processing unit and control unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry.
This panel tells you the type of CPU you have, showing important information like:
- cpu brand (e.g. Intel, AMD, etc)
- number of cores and threads
- architecture (32 bit or 64 bit)
- Cache (L1, L2 and L3).
The final panel gives you some information that you may find interesting - e.g. the load average of your computer system.
This page allows you to customise your network settings. This section is meant for audiophiles who understand the inner workings of networking. You will lose network connectivity if you make any mistake here. Although you can easily recover the mistake by accessing the local console - we advise to leave this settings alone.
This card will show all the Network Interface Card (NIC) detected by the operating system. Here you'd find the Linux driver (and version) for your NIC as well as it's MAC address.
This table provides some useful bits and information about the networking aspect of your computer. Highlighting possible areas for tweaking. Things of general interest are
- Interface Name. Gives you the name of the interface. In the above example, it's eth0.
- Driver. Tells you the Linux driver used for your network card. This entry basically identifies the network interface card on your machines.
- Version. Tells you the version of the Linux driver. Sometimes there are bugs/features in certain versions. This entry gives you the version number so you can pick the right kernel for your needs.
- HWaddr, or Hardware Address for short. This is a unique identifier that is tied to your NIC. Useful if you want to assign a static IP address to your machine.
- MTU, Size of the largest network layer protocol data unit that can be communicated in a single network transaction. Anything bigger than 1500 is considered Jumbo Frames. To use this feature you need to connect your Snakeoil PC to a network switch that supports this feature, e.g. the HP ProCurve seen here.
Tweak this figure to find the optimal size for your network. It is counter intuitive but it is not always the best to set it to the biggest (e.g. 9000 seen here). Setting this too large may actually slow down the performance of your network.
This is where you can tweak the network configuration of your Snakeoil PC. As mentioned previously it is best to leave this to the defaults.
- Hostname. This is the name of your Snakeoil PC. Depending on your network configuration, your DHCP server (e.g. Internet Router) will add the hostname into it's DNS, allowing you to access this PC from your network simply by using the Hostname instead of the IP address. The hostname will also be used by Zeroconf/bonjour.
- Gateway. This field only shows up if you are using static. This is also known as the 'exit node' of your network. Any traffic that is not destined to your local network will be directed to this gateway IP. This is usually your Internet router.
- DNS. This field only shows up if you are using static. When using static IP addressing, you need to provide at least DNS server, else this Snakeoil PC will not be able to resolve names to access the Internet (e.g. You cannot connect to the Snakeoil OS update server to check for newer versions). You can use your ISP DNS server, or you can use public servers from Google (188.8.131.52) or Cloud Flare (184.108.40.206)
For each interface, you can specify one of three states - Disabled, DHCP or Static:
- Disabled. If you have more than one NIC, you can disable any unconnected network cards to speed up booting time. This may even improve the audio quality because you are freeing up system resources.
- DHCP. This enables the NIC. When your Snakeoil PC is first turned on, it will broadcast a special packet to your local network requesting for a IP address. This request will be answered by a DHCP server. This is usually your Internet router. This is the default setting because it minimises the chances of IP address conflicts in your network (e.g. two machines with the same IP address)
- Static. This enables the NIC. Use this if you like your Snakeoil PC to have a fixed IP address. The advantage of this is it speeds up boot up time (especially evident when you are using a slower computer), the second advantage is there will be no DHCP service running on your Snakeoil PC (freeing up your computer resources). The biggest disadvantage is maintainability and this greatly increases your odds of IP conflicts.
Static IP Addressing
- IPV4. This field only shows up when you select Static. Set the fixed IP address you like for your Snakeoil PC. Ensure the IP you use here is not already used elsewhere by other devices in your network. If you do have a conflict, simply identify the other device with the same IP and shut it down.
- Netmask. This field only shows up when you select Static. This is the netmask for your IP address (Class A, class B or class C). If you are using a Layer 3 switch manipulating this netmask can bring about many possibilities.
- VLAN or LACP are in the works but not supported at the moment. Anybody who wants these fast tracked please post a thread in the forums.
- Snakeoil OS do not support Wifi out of the box. In our experience Wifi simply degrades the audio. You can workaround this by:
- Connecting your Snakeoil PC to a wireless bridge or access point via Ethernet
- Request a customised kernel with your WIFI hardware, install WPASupplicant and manually configure Wifi from the console/shell.
There are different ways to organise your music collection, here are some of the more common ones:
Solution Pros Cons Store music on the same SSD/HDD as your Snakeoil OS
- Just one storage medium gives you the lowest power consumption
- Too mistake prone for first time Linux users - high risk of accidentally deleting your music files when you choose the wrong option during a reinstall.
Snakeoil OS one a smaller SSD/HDD and music on a high capacity SSD/HDD
- Less risk of accidentally delete your music library
- Greater cost (More media = more money)
- Higher power consumption
Store music on a Network Attached Storage (NAS), or another computer
- Centralised music collection - allowing you to share the same contents across multiple devices
- Better protection against hardware failures
- Re-locate noisy spinning drives away from your listening space
- Highest power consumption
- Added complexity - the quality and speed of your network may affect the sound quality.
- More complicated to setup
- Higher latency in data transfer
Which solution to adopt depends more on preference than reference. There is certainly no right or wrong, however, be aware different solutions may impart different audio characteristics. In this "Music Library" page, you are configuring your system to tell Snakeoil OS where all your music files are. All music will be loaded from a common folder so that it's consistent across all music players, in Snakeoil OS, the folder is "/media/music" for music files, and "/media/playlists" for playlists.
A quick primer on how disks are defined in Linux. The naming convention Linux used is cryptic. All media interfaces are done via SCSI now, and storage devices can be Disk, or ROM (i.e. DVD or CD-ROM). So adding the initials together, we have sd for hard disks, and sr for ROM drives.
Anything device that begins with sd and followed by a alphabet denote a hard disk - e.g. sda, sdb and sdc. Numbers at the end of these labels represent partitions within the hard disk (e.g. sda1, sda2 or sda5).
sr0 denotes the first optical ROM drive.
At the end of the day, you do not really need to know all this. To get a better understanding of this weird naming convention, you can refer to to this site for a more in depth explanation.
There are two ways of adding more local storage. Format the drive on another computer, and then connect it to the machine. Or connect the bare drive to the machine, and have Snakeoil format the media for you. To format any bare drive, simply select all the HDD labels in the "Uninitialised" table you want formatted, and then click the "Save Changes" button from the command panel.
Note that unactivated editions of Snakeoil OS is limited to a maximum of 1 mount point.
This panel gives you a quick summary of all storage (including removable media such as SDHC cards or USB HDD) that are connected and used by your Snakeoil OS machine. This is an example of a one disk setup. With one disk, no further configuration is necessary as everything will be stored on sda. You can monitor your disk usage by looking at column marked "Avail" to estimate how much free space you have on this device.
The next example shows a multiple media setup, note they are all mounted in the "/media/music" folder. In this example, The device in the first row (/dev/sda1) is the drive where Snakeoil OS is installed. The second drive (/dev/sdb1) is a second SSD and is mounted under "/media/music/wave". The third and fourth are network shares from two different NAS boxes (using the NFS and CIFS protocol respectively).
This panel only shows up if you have any unformatted or free device that is available for use. In the following example, "/dev/sdc1" can be mounted.
This is an example of a brand new SDD, ready to be used in Snakeoil OS.
Once you click on any device in the "Uninitialised Device" panel, you should expect to see a corresponding entry show up in the "Mount Points Configurations" panel. Make any changes if necessary, and click the "Save" button to submit the changes. If things work as expected you should see the device show up in the "Mounted Partitions" panel at the top.
Mount Points Configuration
In this panel you can add or remove mounts for your Snakeoil OS. Click on the "Add Mount Point" button to create a new entry. Note that you can only have 1 entry if you are using an un-activated edition of Snakeoil OS.
The fields of the entry are described as such:
- Media: This is your storage device. This can be hard disk on your system or network shares (CIFS or NFS protocols). Refer to the next section for info.
- Mount Point: All media are mounded in /media/music. Therefore when you enter something like library, the device will be mounted under /media/music/library.
- Mount Type: Specify the file system of your medium. Supported formats are - CIFS, EXT4, NFS, NTFS and VFAT (FAT32)
- Mount Options: Tweak options you can use. This is still experimental and may not do anything.
- Delete: This is a red button with a picture of the trash can icon. Click on this button to delete the entry. The medium will be unmounted when you click "Save".
The media field is where you specify the medium to mount. This can be hard disk on your system or network shares (CIFS or NFS protocols). The format for specifying hard disks are as follows:
/dev/sdXY (where X is an alphabet from b to z, and Y is the partition number).
e.g. to mount partition 1 of your second hard disk, it is /dev/sdb1.
For NFS v3, specify the full path of the mount, i.e.:
and with NFS v4, just the share name:
For CIFS network shares, the format is:
If you have ACL setup for your Windows shares, you'd need to put in your windows login details. Be warned that the password is stored in plaintext on your Snakeoil OS computer, so please use guest shares whenever possible.
Remember to click the "Save" button to commit all your changes.
Copying Files Over Network
Snakeoil OS can function as a NAS! If you are using Windows, start Windows Explorer, in the search box enter the the Snakeoil OS hostname or IP with two slashes before the name (e.g. machine_name or ip_address). You should now see two network shares - music and playlists. Copy all your music files to the music share, and any supported playlists (e.g. m3u) to the playlists share.
For playlists, please use use relative path whenever possible to ensure maximum compatibility with the software players.
Copying music over the network will take a while (that's why I recommend E1000e cards as I find them to have a higher transfer speed compared to Realtek and Broadcom). If you have a big media library to transfer it's well worth the effort to disconnect the drive from the machine, and connect it to your primary machine to do the actual file transfer.
Running Snakeoil OS as a NAS consume more resources than necessary. In activated Snakeoil OS machines, you have the option to enable/disable this as needed.
Linux uses Advanced Linux Sound Architecture (ALSA) for music playback. ALSA in tandem with direct audio hardware access give you audio quality that will surpass that of Windows or OS X out of the box. Despite this superiority few are adopting Linux as their OS of choice. Linux can be a beast that's difficult to tame.
Snakeoil OS attempts to break this barrier by making it easy for you install music software. Here you can select the music player and audio output device you want for music playback. This page will only show music players that are installed on your Snakeoil OS PC.
Any players that were running previously will be automatically stopped when you select and start new players. This ensures only the right players are running, thus preventing unnecessary wastage of system resources, or potential conflicts and other random oddities.
Using Linux for music playback has never been this easy. The following music players come pre-installed for every Snakeoil PC:
- Music Player Daemon (MPD):
- v 0.17
- 0.18 (with DSD-RT patches)
- upmpdcli + MPD 0.21
- Logitech Media Server
- MediaCenter 22
- MediaCenter 23
- MediaCenter 24
- Plex Media Server
- Spotify Connect
Snakeoil PCs running the free edition can also add these players by logging in to the Snakeoil PC (console or shell). Note also the free edition supports one audio device only.
Unfortunately activated or free, some software will require additional configuration outside this Web App. This will be discussed in detail in the next chapter.
The above shows the music players page - broken down into 4 sections: Software State, Music Servers Music Clients, ALSA Output Devices and ALSA Configuration. This page we will explain the UI of selecting and configuring the audio output. For a more indepth look into individual music players, please refer to the next chapter - How To Play Music.
This panel shows the current music players that are running in your Snakeoil PC.
- Server: The Process ID (PID) of the primary music player responsible for organising and queue music. The running server software will be selected in the 'Music Servers' section.
- Client: The PID of the secondary software that communicates to a music server to play music (e.g. Squeezelite). The running client software will be selected in the 'Music Clients' section.
- Remote Control: Some setups include a web based remote control (e.g. LMS or MPD). When one is detected it will be shown. You can click on the link to start the web remote.
Below the three fields are all the audio output devices that are currently detected by Snakeoil OS. The sample rate will b e displayed if the device is playing music. You can use this information to ascertain if you are outputting 'bit perfect' audio to your device. The information in this status may not be up to date as it is only shown on demand. You can click the 'reload' button on the top right to get the latest update.
Depending on your software selection, the Server or Client fields will display the words 'Not Applicable'. For example, MPD don't require a client to function, so when you select MPD the client entry will be 'Not Applicable'. This is normal behaviour.
In rare situations, the music player software will fail to start, or crash midway. When that happens the text 'Cannot Start Server' will be shown . You can click on the red text to read the error logs. This will add in identifying the cause of the problem.
Here you'd find a list of software players - categorised into 'servers' and 'clients'. 'Music Clients' panel only shows up if the music server you selected requires one. For example, LMS requires an additional music client to run, so when you select LMS as your music server, you'd be asked to pick a client because LMS requires a client. MPD do not so this client panel will not be available when you use this player.
Each Snakeoil PC is designed to only start up to one server and/or one client at any one time. If you want to switch players you need to make your selection in here and click the 'Restart player(s)' button. This setup will be saved so your last selected player(s) will automatically start up on reboot.
Some players have icons at the end of it's name. The following icon (notepad with pencil) denotes audio configuration is not handled by Snakeoil OS. In other words, you need configure audio output and media source by changing them from the software's user interface.
The second icon means the software is GUI based. The GUI is shown in a remote VNC session. This will be further explained in the chapter Logging In.
Activated editions of the Snakeoil OS gives you the option to disable server or client panel. You can use this to run a 2 PC setup, for example one high power, high storage machine for LMS, and one low power machine for Squeezelite.
This panel gives you a quick overview about your audio devices. If you are find no audio playing, or if the volume is too low, you can try and click the first command 'Set Volume to 100%' and see if that helps. Otherwise, you can click on any of the 'Add Device' button to create an entry in the configuration panel.
When you click on 'Add Device', it will immediately be changed to 'In use'. Click on this button to stop using the device - the corresponding entry will be removed from the configuration panel.
A matching entry will show in this panel every time you click on an 'Add Device' button in the 'ALSA Status' panel.
Here's a brief description of the fields:
- Delete button: Click the trash can button to remove the entry
- Name: The name field is the name that usually appear in your player user interface. Use a descriptive name if you are using more than 1 audio device
- Streaming Mode: Select 'DSD over PCM (DoP) Support' if your audio device is a DSD DAC. Select this also if you are going to use mpd-dsd-rt and add the native_dsd_type option in the extra options box. For other DACs, select PCM mode. DSD material will be converted to PCM via software and sent to the audio card. WARNING: Do not use DoP if your audio card is not a DSD DAC as damage to your system may occur.
- Options: Here you can specify additional parameters to tweak the selected software. Refer to the 'Extra Options' section later in this chapter for more information.
The Snakeoil OS Web App is designed to allow you to focus solely on music playback. This naturally means we need to minimise your direct interaction with the Linux OS. Here we have consolidated the most common Linux commands in a single page. This page allows you to execute simple Linux commands without directly accessing the computer. For more complicated operations you can still utilise SSH or the local console.
You can update your Snakeoil OS by installing a new firmware. It's always a good idea to install the latest firmware because:
- Includes bug fixes
- Contains additional features and functions not available in your older edition
- Better stability improved user experience.
Simply drag the file and drop it in the marked rectangle to begin installation.
The Linux kernel can be interpreted as the heart (or brains) of the computer. The kernel controls everything. It is the bit of code that bridges the hardware and other software, balancing the needs of computer processing, hardware access, user responsiveness and more. You can replace the kernel of your Snakeoil OS by dropping a new kernel file into the marked rectangle. Some common examples of why you need to use a different kernel are:
- The stock kernel that comes with the LiveCD includes features that are no longer necessary after you have installed Snakeoil OS. A kernel without these additional features are smaller in size, meaning you will experience a slightly faster boot up time, and perhaps even a small sonic improvement.
- Support new features (e.g. native DSD) or DACs (e.g. MyTek)
- Different settings in the kernel configuration may influence the sound signature. e.g. use of a real time scheduler will change how applications behave, and that may be a positive (or negative) in terms of sonic quality. Refer to the custom kernel section on how to create your own kernel and package your built files into a format Snakeoil understands. This usually requires another Linux machine, or you can built it directly on your Snakeoil computer (bypassing the web interface completely).
You can check the kernel you are using from the Snakeoil OS Web App Dashboard. One of the first tweaks you can do to your Snakeoil OS is to use a more streamlined kernel. Download pre-built kernel files from the Snakeoil Resource, or compile your own.Updating the kernel is the same as upgrading firmware. Simply drag the downloaded file and drop it into the marked box as above.
Once the kernel is uploaded, you need to reboot the machine for the new kernel to take effect.
WARNING: Using a different kernel can be risky - it is the heart and soul of a computer after all and you can never truely know if the new kernel you uploaded will boot the computer up, or not. If things go wrong, refer to the Failed Kernel section to how to recover your computer back to a usable state.
Refer to the custom kernel article for details.
Install Software (deb)
Ubuntu software is installed via a mechanism called a deb package file. Activated Snakeoil OS machines can also use this upload box to install deb files easily (no more messy Linux commands!)
Here are some examples of what you can do with debs:
- Update your Logitech Media Server on your Snakeoil OS machine to a different version
- Install additional software (e.g. Plex, HQPlayer NAA, etc)
This is a list of common Linux commands you can run:
- Shutdown: Click this to power off your computer. You'd be re-directed to the Snakeoil OS website after a few seconds, where you can check out the latest happenings of the Snakeoil OS project.
- Reboot: Click this to reboot your computer. The web-app will reload after a few seconds.
- Clear Cache: Click this to clear the system cache. Useful feature if you want to evaluate different software players, and want to make sure you're on equal terms.
- Diagnostics: Click this to generate a Diagnostics file, send this to the Snakeoil Squad for troubleshooting.
- CyclicTest: Cyclictest is a benchmarking tool often used in RT evaluation. Refer to articles like this if you're interested to learn more.
- Top: Top is a Linux program showing how much CPU and RAM your processes are using. The most demanding processes is at the top (hence the name). Use this tool to help you optimise your Snakeoil OS machine.
- Netstat: This shows all the current network connections in your Snakeoil PC. Useful for troubleshooting networking issues.
- Reset REST: Restart the backend RESTful server.
- Restart USB: This resets all the USB ports in your PC.
- Run Wizard: Re-run the first time introduction wizard again.
Snakeoil User Account
When you install Snakeoil the installation process will prompt you to create a system user account. Who remembers that?! This panel will remind you what your system system user account is, as well as allowing you to change your password in case you cannot remember that too.
Here you can cutomised the look and feel of your Snakeoil Web App.
- Language: Change the language by clicking the selected language drop down box. Currently only 3 languages are supported - English, Chinese Simplified and Chinese Traditional. Select a language from a drop down and it will be updated automatically. Please help expand the reach of Snakeoil OS by creating a language file for your country. For more instructions on how to create your country's customised language file, please refer to the article: Language Translation.
- Theme: This changes the skin of the Snakeoil OS Web App, allowing you to find a colour scheme that may well be easier on the eye, or preference. Here are two theme examples, Light and Dark:
This tab contains a lot of experimental (unstable) features yet to make it to the public domain. Only people with a activation code can unlock this functionality (more commonly known as beta testers).
These features can be highly unstable so please try them at your own risk.
How various programs are executed in Linux to give you that multi-tasking ability is determined by something call a process scheduler. How it all works is beyond the scope of this manual, because it largely dependent on the technique (plus other stuffs). Suffice to say if you are using a cooperative scheduler then you can use this option to fine-tune how often a process gets "looked at" in the queue. Snakeoil kernels with RT patches are all preemptive so this option is probably useless.
Click on the "Add Process" button to add a new process. In the process name field, enter the name (or part of) of the process you wish to reassign a new priority. The prio field is the new priority level you want this process to be set to (this field is numeric only, with 1 being lowest priority, and 99 being real-time). Note that we only adjust the priority level here and not the scheduler policy. The later is really reserved for advanced users and not for general use.
Kernel tweaks are parameters you can specify for the boot kernel. Changing these settings will alter the behaviour of the booted kernel, and that in turn can influence the sound. These settings are experimental and the system may fail to boot, or become unstable. Please try these settings at your own risk.
You can upload kernels to your Snakeoil machine. The last uploaded kernel is always set as the default boot kernel, use this setting to override that behaviour and use a previous kernel as your default.
The purpose of the clock source is to provide a timeline for the system that tells you where you are in time. For example issuing the command 'date' on a Linux system will eventually read the clock source to determine exactly what time it is. The clock source shall have as high resolution as possible, and the frequency shall be as stable and correct as possible as compared to a real-world wall clock. It should not move unpredictably back and forth in time or miss a few cycles here and there.
Some common clock sources are:
These are additional command line options for the kernel. Please note these options while well tested in Linux may not be compatible with your hardware configuration. If the kernel fails to boot you'd need to manually modify the boot up options from the console to recover.
Options Description none No special boot parameters acpi=noirq Do not use ACPI for IRQ routing or for PCI scanning acpi=ht Disable all ACPI functions, except what is required for hyper threading noapic Tells the kernel to not make use of any IOAPICs that may be present in the system. pnpacpi Not sure what this does - does it turns on Plug N Play ACPI, or off? nolapic Do not enable or use the local APIC.
Use this to install/uninstall software easily. Uninstall anything you don't need to reduce clutter, or install new players as they come.
You have the choice to disable these services. Doing so will increase RAM, which may in turn yield benefits (or not).
- SMB Windows File Sharing: This is the file sharing protocol you used for copying files to your Snakeoil machine over the network. Turn this service off when you don't use this feature. Turn it on again when you need to copy more files over.
- OpenSSH: For remote access to your computer via putty
- Console: For local access to your computer
You will not be able to gain access to your Linux OS when you disable both SSH and TTY. The only way is remote log in again is to enable either one from the web interface. You will be locked out of the system if you disable these two services and loose network connectivity.
You can install additional Ubuntu packages to expand the capabilities of your Snakeoil OS.
Ubuntu Package Description cpuset Install this package to and you can assign individual programs are run on your multi-CPU computer. See next section on cpuset for more information. exFAT filesystem exFAT (Extended File Allocation Table) is a Microsoft file system introduced in 2006 optimized for flash memory such as USB flash drives and SD cards. Install this package and you can mount any media formatted with this format.
Processor affinity, or CPU pinning, enables the binding and unbinding of a process or a thread to a central processing unit (CPU) or a range of CPUs, so that the process or thread will execute only on the designated CPU or CPUs rather than any CPU. This can be viewed as a modification of the native central queue scheduling algorithm in a symmetric multiprocessing operating system. Each item in the queue has a tag indicating its kin processor. At the time of resource allocation, each task is allocated to its kin processor in preference to others.
Processor affinity takes advantage of the fact that remnants of a process that was run on a given processor may remain in that processor's state (for example, data in the cache memory) after another process was run on that processor. Scheduling that process to execute on the same processor improves its performance by reducing performance-degrading events such as cache misses. A practical example of processor affinity is executing multiple instances of a non-threaded application, such as some graphics-rendering software.
Snakeoil OS runs a very simplistic but effective model for processor affinity:
- Do you want to restrict your music programs to a CPU group?
- Yes: Tick the box that says ' Isolate music player to (user), leaving everything else in (System)'
- No.: Untick the box that says ' Isolate music player to (user), leaving everything else in (System)'
- If you chose Yes above, you now get to decide which CPUs run all your music applications in one group, and everything else in another group. While this does not offer much flexibility, in most cases you should hear an improvement in audio quality.
Make your changes, and do not forget to hit the 'Save' button at the bottom of the page for all your changes to take effect.
In rare instances you may need to use remote access to configure some software players (e.g. XMMS), or when want to play around with the linux system. This chapter describes the three approaches you can use to access your Snakeoil machine.