COMP 3000 2011 Report: Inquisitor: Difference between revisions

From Soma-notes
Atchekan (talk | contribs)
No edit summary
Atchekan (talk | contribs)
No edit summary
Line 36: Line 36:
* ''Standalone version'', installs into whatever Linux OS system you are currently running by modifying a configuration makefile with your current system parameters. This is probably the best for "demonstrating and learning Inquisitor" as stated by the people working on the distribution.
* ''Standalone version'', installs into whatever Linux OS system you are currently running by modifying a configuration makefile with your current system parameters. This is probably the best for "demonstrating and learning Inquisitor" as stated by the people working on the distribution.
* ''Live version'', is a Linux Live CD option that allows you to boot straight from the CD/DVD. A good choice for those that are afraid to accidentally mess something up on their system when running destructive testing and for those that don't have a Linux OS installed on their machine.
* ''Live version'', is a Linux Live CD option that allows you to boot straight from the CD/DVD. A good choice for those that are afraid to accidentally mess something up on their system when running destructive testing and for those that don't have a Linux OS installed on their machine.
* ''Enterprise version'', allows the user to setup a dedicated testing server that would allow any computer to boot from the network using the PXE protocol in order to test multiple computers on a regular basis.
* ''Enterprise version'', allows the user to setup a dedicated testing server that would allow any computer to boot from the network using the preboot execution environment ([http://en.wikipedia.org/wiki/Preboot_Execution_Environment PXE]) protocol in order to test multiple computers on a regular basis. The PXE protocol is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or the OS. This protocol broadcasts to the network a packet that will identify and find the locations of other computers on the network that need to be bootstrapped. Once done the machines at the various IP points will then be able to, via the trivial file transfer protocol ([http://en.wikipedia.org/wiki/Trivial_File_Transfer_Protocol TFTP]), download a network bootstrap program ([http://en.wikipedia.org/wiki/Preboot_Execution_Environment#Network_bootstrap_program NBP]) into random-access memory ([http://en.wikipedia.org/wiki/Random-access_memory RAM]) and run it.
==='''How Large is it'''===
==='''How Large is it'''===
The size of each of the aforementioned 'flavors' is relatively small and only took a couple of minutes to download via my connection at home. The distribution is zipped, and version 3.0 is under a megabyte in size. When unzipped it is just under 2 megabytes (1.95). The iso for the Live CD version of the distribution is 131 megabytes for 32-bit systems, and 135 megabytes for 64-bit systems.
The size of each of the aforementioned 'flavors' is relatively small and only took a couple of minutes to download via my connection at home. The distribution is zipped, and version 3.0 is under a megabyte in size. When unzipped it is just under 2 megabytes (1.95). The iso for the Live CD version of the distribution is 131 megabytes for 32-bit systems, and 135 megabytes for 64-bit systems.

Revision as of 17:10, 6 December 2011

Inquisitor Logo

Part 1

Background

Name

The name of the distribution is Inquisitor.

Goals and Target Audience

This distribution aims to provide an open-source hardware testing and certification system, that is:

  • Customizable: it is possible to pick and choose which modules and tests to include.
  • Modular: it is made up from a series of interchangeable modules; one can easily add new modules in order to add new test detections, production steps, etc. This will be described in greater detail in later parts of the report. Please stay tuned!
  • Flexible: it is possible to adjust virtually any parameter in analysis or testing process and customize the system to the widest extent possible.
  • Intelligent: it is server-based version includes a database that stores all the data on all computers that were tested by Inquisitor making easy to keep track of multiple systems/PCs. If some parts of the hardware were to change, 'clever scheduler' won't redo all the long testing, but only the tests that were relevant to the hardware changes.
  • Distributed: through its modular architecture, Inquisitor can be easily distributed across a cluster to distribute load or make a geographically distributed system.
  • Scalable: it is possible to test just one computer or all the computers in an organization.
  • Free: it is free, and that's always good!

Who Develops it

It is being developed by Mikhail Yakashin and another 5 guys, with various contributions from others, the full list of names can be found below:

Inquisitor team is:

  • Mikhail Yakshin
  • Pavel Melnikov
  • Maksim Bartenev
  • Sergey Matveev
  • Denis Borovikov
  • Andras Horvath

With contributions and suggestions from:

  • Anton Farygin
  • Anton Kachalov
  • Valery Inozemtsev
  • Alexandra Panyukova
  • Michail Pishchagin

How To Get It

Inquisitor<ref name = "Inquisitor">Inquisitor: Inquisitor website.</ref> may be obtained via the official website. Currently it seems that only a direct download is available, but there is a heading for BitTorrent, so who knows it may also be available as an option in the future. There are several 'flavors' to choose from; there is a standalone version, a live version, and an enterprise version.

  • Standalone version, installs into whatever Linux OS system you are currently running by modifying a configuration makefile with your current system parameters. This is probably the best for "demonstrating and learning Inquisitor" as stated by the people working on the distribution.
  • Live version, is a Linux Live CD option that allows you to boot straight from the CD/DVD. A good choice for those that are afraid to accidentally mess something up on their system when running destructive testing and for those that don't have a Linux OS installed on their machine.
  • Enterprise version, allows the user to setup a dedicated testing server that would allow any computer to boot from the network using the preboot execution environment (PXE) protocol in order to test multiple computers on a regular basis. The PXE protocol is an environment to boot computers using a network interface independently of data storage devices (like hard disks) or the OS. This protocol broadcasts to the network a packet that will identify and find the locations of other computers on the network that need to be bootstrapped. Once done the machines at the various IP points will then be able to, via the trivial file transfer protocol (TFTP), download a network bootstrap program (NBP) into random-access memory (RAM) and run it.

How Large is it

The size of each of the aforementioned 'flavors' is relatively small and only took a couple of minutes to download via my connection at home. The distribution is zipped, and version 3.0 is under a megabyte in size. When unzipped it is just under 2 megabytes (1.95). The iso for the Live CD version of the distribution is 131 megabytes for 32-bit systems, and 135 megabytes for 64-bit systems.

Influences

ALT Linux is used as the base and starting point for Inquisitor.

Miscellaneous

Inquisitor uses an internal scheduling program that allows a user to schedule and run multiple tests, in a predefined order with varying parameters.

The following tests are available to run. Please refer to the API for further information and documentation on the various tests.

  • Array configurator
  • Boot from image
  • BYTEmark benchmark suite
  • CPU benchmark: Dhrystone
  • CPU benchmark: Whetstone
  • CPU burn
  • Database to Detects comparison
  • DD
  • FDD read/write
  • Firmware reflashing
  • HDD array stress
  • HDD benchmark: Bonnie
  • HDD benchmark: hdparm
  • HDD benchmark: IOzone
  • HDD passthrough
  • HDD SMART
  • Memory benchmark: STREAM
  • Memory test: Memtester
  • Mencoder in memory
  • Mencoder on hard drive
  • Network interface
  • ODD read
  • ODD write
  • Partimage
  • Reference-based detects comparison
  • Stress compression
  • Torrent upload
  • UnixBench benchmark suite
  • USB flash drive
  • USB GPRS modem
  • USB GPRS Modem Dialup
  • USB GPRS modem signal level
  • USB presence

Installation/Startup

Installation

I decided to go with the Live CD 'flavor' of this distribution as it is the one that would minimize my chances of doing something I would regret to my own PC via some of the write tests that were available as part of the default package. I used VirtualBox to mount the downloaded iso, this enabled me to do some testing and play around with creating my own test cases, and packages. This was easy and straight forward.

Live CD Installation Diagram

A few installation options are described below:

Live CD

Download and save the iso (Live CD) image that is suitable for your system from the Inquisitor website. Choose a virtualization software to use.

Oracle VM VirtualBox
  1. Download and install VirtualBox.
  2. Create a new Virtual Machine by following the point and click wizard.
  3. Mount the Inquisitor iso, previously downloaded.
  4. Start the Virtual Machine with the mounted image.
  5. Select one of the options and have fun...
VMware
  1. Download and install VMware.
  2. Create a new Virtual Machine by following the point and click wizard.
  3. Mount the Inquisitor iso, previously downloaded.
  4. Start the Virtual Machine with the mounted image.
  5. Select one of the options and have fun...

Problems Encountered

None encountered.

Basic Operation

Figure 1 - Main Menu
Figure 2 - A test in progress
Figure 3 - Test results

The setup used; Oracle VM VirtualBox running a mounted Live CD copy of Inquisitor v3.0.

The main menu that is presented to the user directly following boot-up is straightforward and easy to use (Figure 1). All of the options are grouped into categories. Selecting and running tests is straightforward, a test is selected and ran, after it is done, the results are saved and may be viewed at any time. Everything is automatic (Figure 2), you just 'point and click' with the outcome presented as 'DONE', 'FAILED', 'SKIP', 'PASSED', and 'CALLED' - the wording is fully customizable and can be changed via a configuration file if one so desires -. Some tests require the user to enter a set of parameters that are test specific, such as the number of iterations to run through or test duration. All of the parameters are entered via a TUI textfield. Once the desired test(s) are ran, results are saved and may be viewed at any time (Figure 3).

I did not encounter any problems. Although with some of the more time consuming tests it would have been nice to see some kind of an update on what is currently happening, in order to eliminate any suspicion that the system has hung. The only other gripe I had was with the 'View test results' constantly returning me not to the menu from which I came, but to the main menu. This forces the user to go back to wherever he/she was each and every single time. Having an option to 'Exit' once everything was done would have been nice.

Usage Evaluation

From my experience I think that the distribution does everything that it had promised on it's website and then some. I found it very easy to install and come to terms with, and the ability to create and modify existing test cases was simple and fairly straight forward thanks to the provided documentation that kept things concise and not overly complicated. The basics are there, and are enough to lay the foundation for whatever test case module you may want to create provided you have some background experience in programming and know what it is that you want to do.

References

<references />

DistroWatch.com: Inquisitor

Inquisitor wiki page

Part 2

Software Packaging

How is software packaged for this distribution?

Software is packaged using the RPM package management system. It's associated file format is .rpm. This format was intended primarily for GNU/Linux distributions and is the baseline package format of the Linux Standard Base. Repositories are used to contain applications, and they are required in order to maintain system integrity and stability. This was done because software packages often have one or more dependencies. If two programs A and B depend on C and upgrading A depends on upgrading C, then B will also have to be updated to be able to 'interact' with the upgraded version C. Therefore having repositories that contain different releases and versions of packages helps mitigate this issue.

Figure 4 - Synaptic

What packaging format and utilities are used?

There are 2 utilities that are used for package management:

  1. Synaptic is a graphical package management tool that comes preinstalled with the distribution. It allows the user to view, install, remove, and upgrade software packages (Figure 4).
  2. Advanced Packaging Tool (APT) is a command line terminal based packaging tool that has been modified to also work with RPM via APT-RPM.

How can you use these utilities to get a list of installed packages?

Synaptic will automatically list all of the packages installed on the system as soon as it is opened. Adding, upgrading or removing packages can be done in several ways:

  • Select the desired package and choose the action from the 'Package' menu.
  • Double click on the package name.
  • Choose an action from the context menu of the package.
  • Click on the status icon to open a menu that contains all possible actions.

APT has various commands that the user can use:

  • apt-cache - Will allow you to search the local package cache for packages.
  • apt-cache search [package name] - Will show packages with 'package name' that are installed.
  • apt-cache show [package name] - Will show information for 'package name'.
  • apt-cdrom - Can be used to add package archives to the list of sources that are defined in /etc/apt/sources.list.
  • apt-get - Is used to handle packages.
  • apt-get update - Should be run prior to installing or upgrading a software application as it will make sure that the package cache is up to date.
  • apt-get install [package name] - Will install the 'package name' package.
  • apt-get remove [package name] - Will remove 'package name' package from your machine.
  • ...along with many other less widely used commands. Please refer to man pages or online sources for all of the available commands.
Package Breakdown

How extensive is the software catalog for this distribution?

There is a good variety of applications that come with the distribution, from a wide variety of categories. All-in-all, there are 1300 packages pre-installed. There is a nice variety of games (for Tetris lovers, its in there!), Flash, Java JRE, Quicktime, a browser - Firefox -, document tools, calculator, etc, are all included. Wine is also in here. I am not a LInux user and have not yet tried it, but it sounds pretty cool as it supposedly lets you run Windows software on other operating systems.

Please see a more detailed breakdown of the pre-installed packages on the right.

Major package versions

Kernel

  • Version 3.0.3-alt0.M60P.1. The latest stable version is 3.1.1.
  • Size 80.4 MB.
  • No evident modifications.
  • It is a default 2.6.x kernel variant for ALT Linux distributions. It was most likely chosen because it is a proven kernel. Stable and reliable.

glibc

  • Version 2.11.3-alt6. The latest stable version is 2.14.
  • Size 2962 kB.
  • Some of the most recent modifications by the authors have been; some bug fixes, some solutions to localization issues, reversion of some broken commits, and a fixed nscd reload. Full list can be found in the changelog.
  • It was most likely chosen because without these files a GNU/Linux system would not function.

X.org

  • Version 1.10.3-alt0.M60P.1. The latest stable version is 7.6.
  • Size 33 kB.
  • No evident modifications.
  • It has most likely been included in order to provide access to the X Windows System.

JVM

  • Version 1.6.0.26-alt1. The latest stable version is 1.6.
  • Size 90.3 MB.
  • Some of the most recent modifications by the authors have been; some modifications for localization purposes and some font changes.
  • It was most likely included to enable us - the users - to run Java applications.

Bash

  • Version 3.2.51-alt1. The latest stable version is 4.2.
  • Size 1066 kB.
  • No evident modifications.
  • It was included to provide the user with a shell for typing various commands.

Grep

  • version 2.9-alt1. The latest stable version is 2.8.
  • Size 876 kB.
  • No evident modifications.
  • Grep is a command-line text searching tool which is probably why it was included.

RPM

  • Version 4.0.4-alt100.24. The latest stable version is 4.9.1.2.
  • Size 646 kB.
  • No evident modifications.
  • It was included in order to provide a command line driven package management system capable of installing, uninstalling, verifying, querying, and updating software packages.

Firefox

  • Version 5.0.1-alt0.M60P.2. The latest version is 8.0.
  • Size 4931 kB.
  • Some of the most recent modifications by the authors have been; fixes of "Multiple WebGL crashes", "Stealing of cross-domain images using WebGL textures", and fixes to misc memory leaks.
  • It was included in order to provide a browser component for this distribution and probably because it is a cross-platform browser unlike Internet Explorer.

Thunderbird

  • Version 5.0-alt0.M60P.1. The latest stable version is 8.0.
  • Size 39.1 MB.
  • Some of the most recent modifications by the authors have been; gnome-support subpackage was removed, an error was fixed that caused the client to crash due to a corrupted JPEG image, and fixes to "memory hazards".
  • It is included to provide the user with an e-mail client that is safe and fast.

LibreOffice

  • Version 3.4.2.3-alt0.M60P.1. The latest stable version is 3.4.4.
  • Size 250 MB.
  • Some of the most recent modifications by the authors have been; KDE4 support was enabled, and some menu localization issues were solved.
  • This package was included in order to offer the user a productivity suite (document editor) it is an off-shoot of openoffice, and it is largely compatible with other major office suites (including MS Office).

Initialization

The first things that starts running upon start up is the BIOS. The BIOS is the interface between the computer and it's various peripherals. It will load and execute the first 512 bytes off the disk (/dev/hda), the master boot record (MBR). The MBR then starts GRUB2. The boot loader, GRUB2, then loads and runs the kernel. The first thing the kernel does is 'execute' init. Init is the root/parent of all processes. It in turn will then start the /etc/rc.d/rc.sysinit script using run-level 5. Which is the default start up run-level for this version of the OS found out from /etc/inittab, which is the boot-time system configuration/initialization script.

rc.sysinit

- Below is a step by step break down of most of the major functions performed by rc.sysinit, gathered by looking through the script:

  • /sbin/initlog is ran.
  • network scripts are run via the /etc/sysconfig/network script.
  • The system will then print a welcome message and the OS banner on screen.
  • The /proc file system is then mounted.
  • The system will then check if it needs to load and use modules and set a flag accordingly.
    • If modules are to be used then the script /etc/rc.d/scripts/load_modules will be run.
  • The system clock is then set and started using /etc/adjtime and /etc/init.d/clock.
  • The file system is checked using fsck, which will return an exit code indicating the state of the FS. If all is well it proceeds. The message "No errors" is printed if the status is zero. The message "File system errors corrected" is printed if there were errors but they were corrected. If there were some other errors the specific error is printed, the user is dropped back into shell, when the user leaves the shell the system reboots.
  • A script, /etc/rc.d/scripts/lang is ran to correct some "language fixes" related to localization and user selection on boot-up.
  • Serial ports are initialized via the /etc/rc.d/rc.serial script.
  • The firewall is started via the /etc/rc.d/rc.firewall script as well as some others (what looks to be related to specific run-levels allthough I am not sure).
  • All of the kernel ring buffer messages are then dumped using the dmesg command.

References

<references />

RPM wiki page

Synaptic wiki page

APT wiki page

ALT Linux documentation on package management

APT Turorial

http://distrowatch.com/dwres.php?resource=package-management

http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch07_:_The_Linux_Boot_Process#The_Linux_Boot_Sequence

http://sisyphus.ru/en/

Part 3