Version controlling for operating system configurations
No Thumbnail Available
Date
2015
Journal Title
Journal ISSN
Volume Title
Publisher
Uva Wellassa University of Sri Lanka
Abstract
When developing software, the use of a version controlling system is considered a good practice among software
developers. Advantages of using a distributed version controlling system include automatic backups, ability to verify
content authenticity, the ability to control versions and branching. It also benefits the programmer by enco uraging them
to focus on one task at a time. When used properly, a version controlled system provides a very detailed history of when
and why something changed. This can be extremely useful when a new user tries to understand an existing system.
Meanwhile, operating system configurations are mostly managed by a single user according to requirements and their
own preferences. This goal of this study is to apply distributed version controlling technology to manage changes made
to server configurations in order to make them more maintainable.
Methodology
In order to test whether software versioning software can be used as is for versioning system states, a distributed version
controlling system is used to perform all basic version controlling operations on system configurations. Version
controlling operations tests by this study includes:
1.
2.
3.
4.
Store system state by creating commit points
Restore system to a previous state by reverting to any commit point
Creating branches to store different system states
Applying changes by merging branches
In order to prove compatibility, no changes are made to the version controlling software when used. Therefore, it must
be possible to perform all system versioning operations without using any third party software other than a version
controlling software. The system repository is also tested for compatibility with services built around version controlling
systems such as repository hosting services such as Github and Continuous Integration services.
The following information are expected to be stored and changed successfully by the system when performing versioning
operations:
1.
2.
Software installed on a system and their versions
System wide configurations for installed services
When implementing, Ubuntu Server 14.04 is used as the target operating system for this study. Git is used as the
distributed version controlling system. It is assured that no Git incompatible changes are made to the repository and the
system is kept stable at all stages. Therefore it can be used with repository hosting services such as Github A Git repository
which can be placed anywhere on the system is used to track files inside the /etc directory. Git is configured to use these
paths using environment variables. Therefore, the repository can be used with any Git client with proper settings. For this
test, a repository is made at the root directory and properly configured to make sure it does not disturb other operating
system functions.
Git-hooks play a major role for integration because it allows commands to be run when performing version controlling
tasks. This allows for performing necessary tasks on the system when a change is made by Git commands.
Description
Keywords
Operating system, System, Science and Technology, Computer Science, Information Technology