I made a change in the blogger configuration to ease the later work when blogging. It is possible that older entries are not correctly formatted.

Friday 22 February 2008

User Mode Linux- Mounting File Systems

Mounting an existing file systems in an user mode linux can be done in two manners, either using :
  • hostfs,
  • humfs.
Using hostfs implies the following restriction, you should not boot on it, or use devices or sockets on it, and finally the files written by the user mode linux are files with root permissions. For these reasons, it is better to use humfs. There are some issues with page caching under UML. I refer to the origin of these information on this topic, so see here.
  • Make the directory and cd to it
    host% mkdir humfs-mount
    host% cd humfs-mount
    
  • the directory hierarchy which should be available to the user mode linux is in a subdirectory called "data". It is possible to use an existing UML filesystem for this, information on this are found at the previously cited source.
  • As root, run the humfsify utility to convert this directory to the format needed by the UML humfs filesystem:
    host# humfsify user group 4G
    

Thursday 21 February 2008

Kernel - User Mode Linux

While I was playing with kernel programming, I managed to hang my linux box. That's why I decided to use again a usermode linux box to do my module programming. First step was to start an linux user box. As specified on the User-mode Linux Kernel Home Page, download the uml linux kernel version as well as the filesystem file which should be used. For this a number of file system are possible, see for example here. In order to build a uml ou need to download the sources of the kernel. You will also need the readline libraries and the fuse libraries. You might also need others. I haven't yet checked that. Once you have these elements ou can compile a unix kernel with usermode support. Then the only remaining things to do were:
host% make defconfig ARCH=um
host% # now make menuconfig or xconfig if desired
host% make menuconfig ARCH=um
host% make ARCH=um

Note the importance of the ARCH=um parametrisation. The menuconfig is useful for further configuration of your kernel.

Kernel Programming - WORKQUEUE Problems

I decided to look at the API for schedulling in the kernel modules. This turned out to be more time consuming than what I thought. The problem is that the tutorial I have been using is not up-to-date with the current version of the linux kernel. There used to be only one structure to represent some task to perform. But after a change in the kernel workqueue API, there are now to structures: struct work_struct and struct delayed_work. This was the reason why the kernel did not compile in a nice way. I will post here the rest of the small example module for documentation purposes.

Install firefox plugins only once for all users

From the weblog: Urs-o-Log, I obtained the way of installing plugins only once for all applications. prompt $ firefox -install-global-extension One question remains though, what happens when the plugins should be updated. Are they updated individually or ?

Ohloh - an open source software network

The portal Ohloh is an other alternative to freshmeat. It provides a number of statistics and many information which are not available on freshmeat.

Quality Management

The quality of a project is extremely important to consider a project a success. Much work has been done in the enterprise world to offer processes and solutions to ensure the quality of many aspects of projects. The information of this entry are mainly obtained from the article from the article on quality management of the Linux Magazine 12/07. IT Infrastructure Library (ITIL) ITIL is a mean of checking that the infrastructures of a company can ensure the quality of the processes used. It is currently a very important quality management method. The ITIL is a number of books describing aspects of IT processes. Important processes The following processes play an important role in the quality in the ITIL library. Service Support, Service Delivery, Planning to Implement Service Management, Application Management, ICT Infrastructure Management, Security Management. For this a number of norms have been developed:

ISO 9001

DIN ISO 9001 is an important norm for quality. It comes from production companies and remains somewhat generic. The purpose of this norm is to define how the quality should be taken care of.

Important for the ISO 9001 is that the quality is defined on the result of the processes and not on their implementation. For example, it requires that systems be documentated, but does not specify how this documentation should be implemented.

A number of quality management norms have been integrated in the ISO 9001, and many other system are getting closer to the norm.

This norm defines that the quality management responsabilities lie directly by the directing managers.

ISO 20 000

ISO 20 000 defines a norm and is very similar to the ITIL. A company can be certified for this norm through a serie of audits.

Six Sigma

Six Sigma is a very strict way of checking the quality of the processes of an enterprise. For this, there is a central instance as well as many other mechanism to check in all processes the quality of the whole system. ITIL Terminology ITIL uses its own terminology to discuss the quality management of a company.

Wednesday 20 February 2008

Firefox extensions

I have been fooling around with firefox extensions and tried one of my own. There are a few easy things to remember: create a chrome directory with the following structure:
  • chrome ->
    • content ->
      • - extensionname.js
      • - extensionname.xul
      • - overlay.xul
    • locale->
      • en-US->
        • - extensionname.dtd
        • - extensionname.properties
        • - overlay.dtd
      • skins->
  • components->
  • defaults->
    • preferences->
  • - chrome.manifest
  • - install.rdf
Here is a little summary of the purpose of all these files: - the content directory contains the core of the extension, an overlay.xul file which defines some modifications to an existing xul file. The extensionname.xul file contains a xul file for the visualisation of the application, and the extensionname.js contains javascript code used for interaction purposes - the locale contains dtd and property files for the possible localisation of the extension. For each possibility, there is a directory with the name of the locale. The dtd are used for xul files, while the properties files are for javascript files. - the defaults directory is used for things related with the user profile, - while the components contains possible XPCOM components. Finally, install.rdf gives some information about the extension, while the manifest file chrome.manifest indicates on which xul file the overlay is applied and the place where the extension is to be found. To simplify the work, I use a templating method to generate extensions from some definition files. To package the extension once the install.rdf and the manifest file have been correctly edited, you only need to zip it with an ".xpi" as file extension.

JGroups - Reliable Multicasting

The JGroups is a framework I do not know yet. It seems to be required for some applications, so I took a quick look at it. From the documentation of the version 2.5, I could have a better idea of what this toolkit can be used for.