The working environment is the set of applications required to be able to try out the code and advices given in following chapters. It is important to have a clean environment where all the concepts can be seen in action. The main focus is to be able to develop an operating system
on top of ours, without the need to have a dedicated computer for trial.
The environment must be the same for everybody, this way we can focus on general design and do not have to give support to all existing hardware,
we want to have the same standard machine for everybody, this is accomplished by using an X86 machine emulator.
Portability is also in mind, we don’t want to tight the user to any operating system, so all the tools are going to be as portable as possible, but
being the main targets Linux and MacOsX, theoretically Windows, or any UNIX based operating system, should not represent any problem.
Debugging is another important point, we need to be able to debug all the execution, this could be very hard and time consuming on a real computer,
as we would need to implement some debug layer under everything we do, but the approach we are taking will allow us to use the debugging tools
built in the emulator, as it will be seen this does not mean we are not going to build any debugging routines, but will just do few.
The environment is thought to be incrementally built, there will more than one environment chapter, each which will be a prelude for the theory/practice to come
in next sections, the idea is to keep as low as possible the number of needed applications and to see the real use for each tool.
The tools installation will not be covered in depth as we will be using widely spread tools, and one can google for the right installation for their
platform, we will just be giving some advices on what should be and what should not be installed.
It is not mandatory to use the tools I suggest, but using them assures that the code supplied will work as expected, the theory does not depend on the chosen
software ( or at least it should not ).