summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorJoel Andres Granados <jgranado@redhat.com>2008-07-24 18:30:12 +0200
committerJoel Andres Granados <jgranado@redhat.com>2008-07-24 18:30:12 +0200
commiteeb0a02dc259a5ac9a6ed444fee038e831444897 (patch)
treec0dabba061e18f824c5d325f8eae7ec537ddfd41 /doc
parentdf795200dffa808edcdb4ae5f7ccee7796cf1f12 (diff)
downloadfirstaidkit-eeb0a02dc259a5ac9a6ed444fee038e831444897.tar.gz
firstaidkit-eeb0a02dc259a5ac9a6ed444fee038e831444897.tar.xz
firstaidkit-eeb0a02dc259a5ac9a6ed444fee038e831444897.zip
Add article that talks about the general Firstaidkit concept.
It would be nice if all the articles have the same prefix "articlefak-".
Diffstat (limited to 'doc')
-rw-r--r--doc/articlefak-concept.tex76
1 files changed, 76 insertions, 0 deletions
diff --git a/doc/articlefak-concept.tex b/doc/articlefak-concept.tex
new file mode 100644
index 0000000..a18e6c5
--- /dev/null
+++ b/doc/articlefak-concept.tex
@@ -0,0 +1,76 @@
+/documentclass [a4paper,12pt]{article}
+
+/title{ Firstaidkit Explained }
+/author{ Joel Andres Granados}
+/author{ Martin Sivak }
+
+/date {}
+
+/begin{document}
+/section{ Use Case }
+Lets meet Joe. He has a very healthy interest in Linux based Os's and has been a user of fedora for some months now. He has a very positive experience with his currently installed fedora 9, which was installed by his hacker friend named Fred. Fred, being a very knowledgeable hacker and being a very good friend of Joe's, installed a stable fedora system that made Joe very happy. He has had very little issues with fedora 9, and the system has allowed him to get his daily job done. Joe currently studies in his hometown University and majors in _________.
+Sometime after receiving fedora 9 from his hacker friend, Joe gets the word that fedora 10 was released and that it has a bunch of updates that might be interesting to him. Being a curious and adventurous person by nature, Joe thinks its a good idea to upgrade his system, so he gets his hands on a fedora 10 DVD and fires up the upgrade process. As usual its a very user friendly interface and after answering some configuration question that he does not completely understand, the upgrade takes a couple of minutes and finishes successfully. Joe sees that the upgrade has ended and is eager to restart his laptop to begin to use all the wonderful updates that he had read about in fedora site. So he reboots and waits impatiently for the system to come up again.
+Success!, fedora has upgraded to its next major release. Joe is happier than ever. He is so happy that he begins to look for more information on the new release. In all his searching for information he comes upon a site that tells him how to modify the background of his grub. He has a really cool image that he thinks would look really nice at the grub menu. He decides to follow the instructions on this particular page and see if he can make his cool idea work. When the tutorial tells him to backup the first 512 bytes of his hard drive he gets mixed up and copies "dd of=/dev/zero of=/dev/sdb bs=1 count=512" on the command line and while logged on as root. He completes the rest of the tutorial and reboots when he thinks that he is done.
+Joe waits a couple of minutes before realizing that the black screen with a white cursor at the top left is not the expected boot screen. He feels scared because he does not have any other way of booting the system and all his work for the semester is in this particular computer. He immediately thinks about all the important information that is contained inside and starts panicking. He reboots the machine several times to find that the behavior does not change. In a state of complete panic he calls Fred. Fred's girlfriend picks up and says that Fred has gone out of the country and left his cell with her until he comes back. However, Joe is not discouraged and he goes to a friends house to get on the web and try to find a way to fix his problem. He spends the weekend trying to make his notebook boot with no success.
+On the following Monday he gets help from the informatics office in his university. They are quick to reinstall grub in his partition and make everything work again. They explain to Joe what happened and teach him how to fix it in case it ever happened again. Joe is somewhat happy because all his information is back where he left it, but he is left with a very negative experience from fedora/Linux. It would not be surprising to consider that Joe will think twice next time he has to choose an OS for his personal use. All this could have had a totally different outcome if there was a tool to fix common problems like the one that Joe had. A tool that automatically diagnosed and fixed Joe's problems. This is the type of tool we would like to present in this article.
+
+/section{ What is Firstaidkit }
+Firstaidkit is an automated recovery tool that brings together common recovery processes and applies them to a system. The way that Firstaidkit handles the recovery processes is by means of plugins. The idea being that a plugin will focus on a particular issue in the system, like grub, init scripts or xserver. Firstaidkit is designed to automatically fix problems while focusing on maintaining user data integrity. In other words, Firstaidkit will try its best to fix your system while maintaining your data intact.
+Here we can recall Joe's situation. Lets recreate the end of the story with the only difference being that Joe had Firstaidkit on a rescue disk or liveCD. Joe just wants his computer to boot, he knows that he somehow shot himself on the foot, but now he would want an easy way out. In this case Joe may run Firstaidkit in diagnose mode to see what is wrong with his system. Firstaidkit will notice the missing grub in the first 512 bytes of the drive and will tell Joe that he needs to fix his grub. After looking through the Firstaidkit man pages and searching through the plugin list, Joe finds that he needs to run the plugin named "grub". He tells Firstaidkit to run grub in fixing mode and reboots his machine after the process ends. He waits impatiently for the machine to go past the blank screen with the cursor at the top left. When the computer boots normally, Joe is very pleased that all his information was not lost and continues his daily activities.
+Joe's situation is just one of many in which an automated recovery tool would make peoples life easier. It can be extended into a lot of administrator recovery tasks like Selinux analysis process, deleted partition recovery process, init scripts recovery, rpm database recovery, etc. The list extends into most, if not all, the OS subsystems.
+Firstaidkit will not take care of everything. It is a tool that executes common recovery processes, it needs some context from the existing system to actually get the fix right. If you completely wipe out your hard drive it will be extremely difficult for Firstaidkit to get some context to fix stuff.
+
+/section{ How does Firstaidkit work? }
+Firstaidkit is based on a plugin framework that allows different recovery processes to be added to the system with little or no effort. The Firstaidkits user interface (UI) presents a list of these plugins and the user must decide the way in which they will be executed. The plugins can be run in a fully automated way. This means that all the plugins will be run and there will be an attempt to fix whatever issue is encountered. This approach is not reasonable considering the amount of plugins that could exist at a certain point. Additionally, there is no real need to run all of the plugins because the user will have some idea of what the problem is.
+Another, more rational way of interacting with the system is to pick what plugins will run. Firstaidkit allows the user to see the description of each plgin and decide based on said description the plugins that are needed. This prevents the user from having to execute all the plugins when all he needs is a simple recovery task.
+So how does the user that knows very little about the system take advantage of the possibility to pick a plugin? He could run all the plugins in diagnose mode, this mode will not take any action but will tell the user if a specific subsystem is working properly or not. After making a diagnose only run, the user has information that could be used to actually decide what plugins to run.
+Firstaidkit is controlled by ini style configuration files. The system allows to pull any number of configuration files from various places. It also allows the user to specify individual configuration values through the CLI. This way of pulling configuration values from various places can get complicated, so Firstaidkit has the ability of printing the resulting configuration after parsing all the files.
+The philosophy of Firstaidkit is to be a *fully* automated recovery system. This means that once plugin execution has started there is no user interaction. Everything must be specified in the configuration files or command line.
+At this point it is important to note that Firstaidkit can be run in environments different from a healthy running system. This is needed because Firstaidkit will probably be used in situations where a healthy running system is not an option. There are two additional ways of getting to Firstaidkit:
+
+/begin{ itemize }
+/item Rescue image:
+To use the rescue functionality of the iso images is the most logical thing to do when your system is not well. Specially if it does not boot. Firstaidkit will be contained in the rescue image and can be accessed with the command line. Note that there is no X in rescue mode. This means that the only way of interacting with Firsaidkit is through command line interface.
+/item Live CD:
+Live CD fits in really nice with the firstaidkit concept because it puts the user in a graphical environment without the need of a sane local system. This gives Firstaidkit the opportunity to be in a place where the user can interact with its GUI. Making life for the user easier. Everything that applies for the command line applies for the GUI. The user can activate the recovery processes that he thinks are needed or just tell Firstaidkit to make a general scan of the system.
+/end { itemize }
+
+/section{ Firstaidkit capabilities }
+Lets go into more detail on Firstaidkit's plugin capabilities and at the same time we can discuss some features that it has for plugin developers. Firstaidkit on its own does nothing interesting with respect to fixing things. It needs the plugins to do the fixing. Firstaidkits backend is the one in charge of making all the plugins work together. Things like logging, coordinating plugin order, backup files and data are all the job of the backend. The plugins have access to most of this backend and can use a lot of cool functionalities to get their job done. So, what does the backend have that can be used in the plugins? here is a list that has a short description of the functionalities:
+
+/begin{itemize}
+/item logging: It allows communication with the user. Its the preferred way of telling the user what is being done to the system.
+/item backup: Easy way of backing up files, directories and data.
+/item plugin order: The plugin may define what system state needs to be present for the plugin to run correctly.
+/item issues:
+/item flow: This is a way of defining the automatic _activities_ in a plugin.
+/item parameter: Defines how parameters are passed to plugins.
+/end{itemize}
+
+/end{document}
+
+Initial Brainstorm:
+
+To whom am I writing this article? Developers or users, or both?
+ * I should write an article for developers.
+ * and another for users.
+
+What is my main idea and message?
+ * Transmit what a great concept the firstaidkit is.
+ * Transmit the ease of use of firstaidkit.
+ * Transmit the ease of development.
+ * Tell everyone what firstaidkit is.
+ * How can firstaidkit be used.
+ * What is the current state of firstaidkit.
+ * What is in the future for firstaidkit.
+ * Answer a bunch of questions and put the document together.
+
+This should be a short an consise document. Easy readable and understandable. To the point.
+
+
+
+WHAT DOES IT TARGET?
+It targets everything that renders any part of the system unusable.
+
+RANGE(SCOPE)
+FAK's scope is quite big as it has the possibility to aid in the recovery of most, if not all, the subsystems of the OS.