Go to the previous, next chapter.

What do I need to run NetBSD

This chapter describes the hardware related topics of NetBSD. It will explain, what kind of hardware you need to be able to run NetBSD on your Amiga.

In general, there are two major requirements your system must fulfill to be able to run NetBSD. You must have an apropriate CPU and enough memory. To comfortably run NetBSD you should dedicate some harddiskspace to NetBSD.

Which CPU is needed?

It depends heavily on the type of CPU your system has, whether or not NetBSD runs on your Amiga. NetBSD, as any other modern Unix-derivate, too, must have a memory-management-unit (MMU) to be able to run. This is needed as all the programs that run under Unix are separated from each other, so no program can do any harm to any other.

You need to have one of the following processors (CPUs) to be able to run NetBSD:

Note, that it is very important that you have a real CPU, i.e. not an EC-version. These versions are missing the MMU-part of the chip and are therefore cheaper. It is not possible to simply add a 68851 (MMU) to these chips. You have to replace your CPU, if possible, or you have to buy a seperate CPU-board or accelerator-board equipped with one of the real CPUs mentioned above to be able to run NetBSD.

Also note, that you currently need a floating-point-unit (FPU) to be able to run NetBSD. The kernel itself, that is the core part of NetBSD, does not need an FPU, but some of the essential utilities do. However, other ports of NetBSD on other architectures have an FPU-emulator implemented in the kernel, so they can do without an FPU. So, if someone implements an FPU-emulator for NetBSD on the 680x0-architecture, the need for a seperate FPU will eventually vanish, but for now you need an FPU.

How much memory do I need?

Theoretically, you only need 2MB of FAST-RAM and 1MB of CHIP-RAM. The 1MB CHIP-memory is only needed due to the way NetBSD is currently booted. If someone rewrites the program that loads the kernel into the memory, it would be possible to boot the kernel with 512KB CHIP-RAM. Currently the kernel is loaded into the CHIP-memory and then copied into the largest chunk of fast memory found. Therefore 2MB is the bare minimum and will not allow you to do anything useful, but booting.

Note that the complete GENERIC kernel (including drivers for every device supported) is over 1MB in size; you can't load this kernel with only 1MB of CHIP RAM, 2MB is required. The basic INSTALL kernel will load with 1MB CHIP fine however.

It is possible to run NetBSD in a low memory situation, because it uses a mechanism called paging. It writes currently unused parts of programs to the disk, thus freeing some memory for other parts. Writing to and reading from disk is very slow, compared to the execution of programs in memory, so the system will be too slow to be useable. So, to have an actual useable system, you should have at least 4MB of FAST-RAM, preferably more. When you want to use X-Windows, a graphical user interface on top of NetBSD, you probably need about 6MB or even more to do anything useful.

Non contiguous memory

With the Amiga's architecture being what it is, it is often the case that the memory map will have "holes" in it - say, 1MB of CHIP RAM, followed by a gap, 4MB of 16bit RAM, a gap, and then in (very) high memory a block of 32bit RAM; this is often the case with 68000 machines upgraded to an 030 or above.

The current NetBSD kernel can only use contiguous memory; typically, the loader program will choose the largest contiguous block of memory. This is important to note - the machine described above could have 8MB of non-CHIP memory (assuming there is 4MB of 32bit RAM), but NetBSD can only use 4MB of it (typically the 32bit RAM has a higher priority, so it will be used in preference).

Patches to allow the kernel to use non-contiguously mapped memory do exist, but at the time of writing are not `publicly' released. (Would anyone like to upload their patches to the ftp site? If so, let me know!). In the situation above, there is a tradeoff - extra memory vs. slower execution (16bit memory can degrade performance considerably) - a better solution would be to add extra 32bit store.

How much diskspace do I need?

Theoretically, you can do without any harddiskspace. It is possible to boot NetBSD from floppy-disks, but you cannot do any useful work with such a setup. To get an actually useable system, you will need to dedicate some harddiskspace to NetBSD. It is planned to create a NetBSD-CD it the not so far away future. Once it is available you can work with NetBSD from the CD-ROM. But then again, CD-ROMs are a lot slower then harddisks, so if you want to go for maximum speed, you will need some harddiskspace for NetBSD. How much you actually need depends heavily on what you want to do with NetBSD.

8MB of hard disk space will be sufficient to boot NetBSD and play around with it a bit. A small, but complete working system needs about 50 to 80MB. It should be clear, that the more goodies you want to add, the more space you need. Once it is available, you should definitely consider the NetBSD-CD a good source for programs. Having the seldom used binaries executed directly from the CD can save you a lot of harddiskspace.

To prevent you from running out of memory, you should use about twice your RAM amount just for a swap partition on your drive (or about three times if you intend to use the X-Windows system). That is where NetBSD writes the parts of running programs which are currently not used to free up some main-memory for other programs.

See section Where can I find more information on NetBSD?, for information on how to get the file compatibility-list. It contains information about the supported harddisks.

What other hardware requirements are there?

There are no other hardware requirements to run NetBSD, but you are free to use additional devices, provided they are supported.

There is a general scheme on how NetBSD deals with devices. To get a device working with NetBSD you have to provide a so called 'driver' for this device. This is a hardwaredependent part of the kernel, which knows how to access the particular device. There are already device-drivers for the most commonly used devices, but there are still some device-drivers to be written.

See section Where can I find more information on NetBSD?, for information on how to get the files compatibility-list projects. The former contains information about which devices already work with NetBSD. The latter is a list of projects currently being worked on. The file wish-list documents the devices, which are currently not supported.

It is a difficult task to add support for a new device. So you need to have good programming skills and need to know a lot about how the kernel deals with devices. If you think that you are an experienced programmer and want to add support for a new device, you need to be able to recompile the kernel yourself. See section How do I build a kernel myself?, for information on how to do this. See section Where can I find more information on NetBSD?, for information on how to get in contact with other developers.

A tape drive is recommended for NetBSD, as for any other operating system, too. You should do regularly backups in order to be able to restore the data you might have accidentially destroyed. Especially when you are doing kernel-development, chances are, that you may trash your harddisk. The system is normally quite stable, so doing backups is not a must but a sensible option.

A CD-ROM-drive is recommended, too, because it allows you to save a lot of harddiskspace, when you run keep most of the seldom used things on the CD.