The popularity of the Linux operating system is growing at an incredible rate in the modern world of high technology both on the enterprise side (servers, supercomputers, etc.) and the consumer side (mobile phones, desktops, etc.) in many ways due to the open architecture model and open source code of the basic system components. Reliability, quality, and, finally, the success of these systems are primarily due to the right choice of developers (maintainers) and necessary tools.
The development of any Linux distribution is, in fact, mostly in the right combination and modification of existing open source components according to the goals of this distribution. In spite of the differences in the design of the user interface and internal architecture of Linux distributions, all of them follow three general goals: provision of the latest and most stable versions of programs, provision of the wider variety of programs for all user groups and provision of as much as possible of the unique software primary developed for this distribution.
In order to achieve these goals, Linux maintainers have to solve various tasks and problems of different complexity. As a simpler problem for the beginner one can bring a problem with creating of installation packages for new software in the distribution or fixing bugs in existing software components. As a more complex problem one can bring a problem with adaptation of newer versions of existent components in the system that is significantly complicated by many forward and backward dependencies of system components and problems with backward compatibility of interfaces. As another complex problem one can bring a problem with quality assurance of package repositories which can reach enormous size in the tens of thousands of packages. In order to solve such problems there is a need to develop various automated tools.
The average Linux distribution from the top ten distributions like Ubuntu or Fedora is developed by hundreds of maintainers. So, in addition, the integral part of the work of a Linux maintainer is the continuous communication with other maintainers of dependent system components.
The stability of the next versions of the Linux distribution depends on the quality of the solution found for the problems met during the development. The spend time for the stabilization and frequency of the releases of the distribution and, finally, relevance of the software versions for customers depend on the spent time to solve such problems.
These and many other problems of a Linux maintainer and necessary automated tools to quickly solve such problems are discussed in this paper.
Vladimir Rubanov
Vladimir Rubanov – Deputy CEO and Vice-President of Engineering at ROSA Lab, leads the development of the company’s software products – primarily, various operating systems for different form-factors. In 2011, was personally responsible for the project to build prototypes for the Russian National Software Platform under initiative launched by the Ministry of Telecommunications.
Previously, for many years Vladimir has been with the Institute for System Programming of the Russian Academy of Sciences (ISPRAS) as Head of Operating Systems Department. He originated numerous contracts with the leading world-class companies to develop new technologies and complex system software (Google, IBM, Intel, The Linux Foundation, NEC, Nokia, Samsung, Raiffeisen Bank, VIA Technologies, Vympelcom and others). In 2006 founded the Linux Verification Center and led its activities since the very beginning.
Vladimir graduated (BSc and MSc) from Moscow Institute for Physics and Technology with absolute honors (GPA 5.0 of 5). Has Ph.D degree in Computer Science and academic rank of Associate Professor from ISPRAS.
Vladimir is an active member of the professional community, program committee member of a number of conferences and working groups. Noted international expert in the area of open-source software, software engineering, IT-standardization, interoperability, and automated software verification. Has over 50 scientific publications, dozens of talks at the leading international conferences. A member of ACM and IEEE Computer Society.
Andrey Ponomarenko
Andrey Ponomarenko – software engineer with 7 years of experience. Currently, Senior Software Engineer at ROSA (Russian Operating System and Applications) Lab. Engaged in the design and development of the necessary tools for maintainers of the ROSA Linux.
Previously, Andrey worked at the Institute for System Programming of the Russian Academy of Sciences (ISPRAS), where he was involved in the development of new software testing technologies and tools for the leading international companies such as The Linux Foundation, Intel, Nokia and Samsung. In 2006-2010 was a lead developer of the LSB (Linux Standard Base) infrastructure. IEEE CS certified software test engineer from 2006.
Andrey graduated (BSc and MSc) from the Faculty of Management and Applied Mathematics, Moscow Institute of Physics and Technology (MIPT), specializing in Software Engineering.
Andrey is an author and active contributor of a variety of famous open-source projects, including the ABI Compliance Checker and Upstream-Tracker.org. He has over 15 scientific publications.