Toward The New Bootdisk Howto, part 2
(A Scratch for The Road, part 1)
It is hardly to say that it is easy to find the exact way for the goals of this trip. There are a lot of interesting approaches for making a bootdisk. And all of them are giving some interesting points with a lot of literature needed to read. I’ll try now to make a scratch for the road, but it will give only the main contours, not the exact step-by-step way to the goal.
You should know to read English language. While it doesn’t have a lot of sense for people who are reading this document (they know to read English), this statement is important for possible translations of this document, as well as the first advice to anyone who wants to learn computers and Internet deeply.
It is possible to find a number of problems with such need, but it is necessary to read documents in English in the contemporary world. It is even necessary to know to write English if you want to communicate with people all over the world. Think about it as a necessary technique and keep talking with your friends in your native language.
Before you start to work with computers it is strongly recommended that you learn touch typing. With this technique, your life will be much easier. However, some kind of fast typing without looking in the keyboard would be good enough. Two fingers typing is the worst choice.
Computers and Internet
While this manual doesn’t intend to give to you all knowledge necessary to make a bootdisk, it will give to you a road for getting all necessary knowledge. So, if you don’t know anything (or your knowledge is very pure) about computers and Internet, read the next:
- Computer (Wikipedia)
- This is a very general article about computers. But, this is, also, a part of contemporary general culture. Everyone should read this article to take a general knowledge about computers.
- Internet (Wikipedia)
- The same stays for introduction to Internet. Today everyone should know the basics of the Internet.
- Unix and Internet Fundamentals Howto (Eric Raymond)
- Now, you are ready to read the first comprehensive introduction to the Unix world. Eric’s document is the classic piece of Internet documentation and it is possible to say that generations of Unix hackers grown up on this (and the next) document.
- Hacker Howto (Eric Raymond)
- This document gives to you a road for learning the basic Unix-related skills.
- Ubuntu (Wikipedia)
- Read the article on Wikipedia and then install it on your computer. If you don’t have a computer, try to find some free computer center (academic or similar) with installed GNU/Linux. Debian or almost any distribution derived from Debian (like Ubuntu is) are preferable for this document purpose.
- Introduction to Linux (Machtelt Garrels)
- This is the biggest document which you should read on this road. This is a complete introduction to GNU/Linux systems.
- Bash Beginners Guide (Machtelt Garrels)
- While we wouldn’t use Bash (but ash, Almquist shell), Bash guide will give to you the basics of shell scripting. The most of things which we need (like to make a for loop) are available in ash. Also, the package which would be almost all of our system, BysuBox, includes ash, but not bash (which is, of course, reasonable, because the size of ash is a couple of dozens of kilobytes, while the size of bash is a couple of hundreds of kilobytes).
- Python Tutorial (Guido van Rossum)
- Up to this moment you should have installed some GNU/Linux distribution with Python interpreter. Learn Python because it is one of the most simple and most powerful programming languages. You may not program everything in Python (like you may program almost everything in C), but this manual describes how to make a bootdisk, not how to make a kernel.
Now, you should be introduced in the general terms of computer architectures and virtualization machines.
- Computer architecture (Wikipedia)
- This is the basic article about computer architecture. You should start from this one, but there are a couple of other important articles.
- Computer hardware (Wikipedia).
- You should learn what is inside of your computer.
- Instruction set or possible in the future Instruction set architecture (Wikipedia)
- This is an introduction about specific models of computer architectures. We will not work on all of the architectures, but general knowledge about them is desirable.
- CISC (Wikipedia) or “complex instruction set computer”
- It is the general instruction set architecture, x86 (Wikipedia) is the instruction set of the most popular Intel’s CISC computers, IA-32 (Wikipedia) is the general name for 32-bit implementation of x86 and i386 (Wikipedia) is the 32-bit concept of processors which lays on all of the contemporary PC computers. Of course, from the 1985 when the first i386 processor was published, processors of this type had become much more faster.
- RISC (Wikipedia) or “reduced instruction set computer”
- It is the general instruction set architecture which is used inside of the most other-then-PC computers. All of the rest of the computer architectures which are intended to be supported by this manual are RISC.
- Power Architecture (Wikipedia)
- It is widely known architecture because Mac used it before it switched on Intel architecture. It is one of the RISC implementations.
- SPARC (Wikipedia)
- SPARC is an open architecture mainly used as the base for mainframe and supercomputers.
If we don’t want to buy a number of computers for our work, we should find a software which would fake computer architectures for us. According to my previous research, the most usable virtualization machine is QEMU.
Even it is possible to use some other virtualization machines, we don’t need to run parallel systems in production, but testing system inside of our running system. Actually, it seems that QEMU is one of two virtualization machine which is according to our needs: We need different architectures simulated as well as type 2 hypervisor (type 1 is running as a kernel). The only other virtualization machine which is doing the same (but slower) is Bochs. However, if people who develop BusyBox use QEMU for development, I think that we should use it, too.
There is one more virtualization machine (Simics) which may allow us to do the same, but it is not free software. The most popular virtualization machine, VMware, is not able to run on any other architecture then IA-32 and AMD-64.
But, before we continue, some useful references should be read:
- Virtualization (Wikipedia)
- This is the general article about virtualization.
- Virtual machine (Wikipedia)
- We need such software.
- Hypervisor (Wikipedia)
- This article explains the differences between types of software which we need.
- Comparison of virtual machines (Wikipedia)
- We need one of them. If you find some other useful virtualization machine, please tell it to me.
- QEMU (Wikipedia)
- Read it before the complete manual.
- QEMU documentation (Fabrice Bellard)
- While we wouldn’t need to use all of QEMU features, it is good to be introduced in the whole system.
You may join the discussion group (which is still not active), as well as you may contact me (email@example.com).
- Toward The New Bootdisk Howto, part 1 (The Beginning of The Road)
- Toward The New Bootdisk Howto, part 2 (A Scratch for The Road, part 1)
- Toward The New Bootdisk Howto, part 3 (A Scratch for The Road, part 2)
- Toward The New Bootdisk Howto, part 4 (A Scratch for The Road, part 3: kernels 1)
- Toward The New Bootdisk Howto, part 5 (A Scratch for The Road, part 4: kernels 2)
- Toward The New Bootdisk Howto, part 6 (Making a GRUB rescue disk)