February 25th, 2005, 01:09 AM
This is a paper I've been working on for a while but I had to stop because of school and therapy on my knee so I had no time to work on it. I have been adding and changing things around though, so if you all would like to look it over and maybe give an opinion on what you like and don't like about it, and remember itisn't nearly finished yet and I'm going to add a lot of things here and go into more detail, but let me know what you like, what you don't like, where something could be moved to organize it more (I'm thinking of building the TOC into it so you can skip around but that adds more time to it and it's already taken a while.
I added the FAQs for both in here because some of the things in there, I think belonged in here. And some of it I borrowed from the Book "Free BSD Unleashed" and "The Complete Free BSD" not a lot of it but some of the things in those books I wanted to add because they add a lot to the paper.
Again, this would be not even Beta yet.
Slackware Linux VS. Free BSD:
A (somewhat) unbaised look at two OSs.
This is going to be done on my Slackware Linux 9.1 machine in Emacs and Vim, and will not include much outside of my experiances with both platforms. Remember that I am NOT a coder, so I will not put much of that into this.
The last week or so I have been pitting Linux up against Free BSD 4.10 and 5.0 to see which one is better at what.
By reading the websites for both OSs, they both make out like they are on top of the game for server and desktop use. But is it all true? Or just hype?
It may come as a shock, or it may not, that I haven't had a computer for very long. I got my first machine 4 years ago, and learned fast. I heard about Free BSD about a year later, and actually started with Free BSD after leaving Windows to try other OSs. I've been using Linux for a year now, and so far I have learned a lot about UNIX and OSs in general.
Anyone from Anti Online that reads this knows that I am usually the person to come to when you have an OS question, and that is because I learned a lot about how they work in general by learning from the OSs I have used.
From a security stand point:
Any OS can be good, and any OS can be secure. The main difference between who gets attacked, and who can defend depends on the person using the machine. An example:
User A runs Windows 98SE, has Mcafee Anti Virus, and Mcafee Firewall installed, updated, and all Windows patches installed, and the machine has only a few programs installed, and they are all updated.
User B on the other hand is running Free BSD, and has no idea how to update it. SSH was installed and running by default, and the user doesn't know how to use upgrade_pkg.
The above examples can easily be applied to a real world event, as I have heard of plenty of users installing Free BSD for the first time, and either not knowing how to shut the machine down (I guess "halt" or "Shutdown" aren't obvious enough) Or they don't know how to update the system. They awake the next day to a machine that has been rooted.
User A however, leaves the machine on all the time, and has never had a problem. User A opens NO attachments, doesn't use Peer-2-Peer software, and has the firewall protecting them from other forms of threats. And since Windows 98SE has almost no remote network capabilities out of the box, they don't have many services running that could be exploited anyway.
This is a good example of something that can happen. The difference between these two users besides a letter? Well, one has knowledge, and the other has bragging rights. Let that be a lesson to you: Uptime means nothing when your box has more holes than a block of Swiss cheese.
I would really much rather reboot my machines because I'm installing a Kernel patch than be rebooting them because someone broke in, exploiting a hole that had a patch, and would have fixed it a couple of months ago.
This was of course just one of the many real world examples I could come up with. I've seen a lot of things, and I've heard of even more, because some people just do not update for some reason.
Being able to run on low cost Intel based hardware is something that used to be rare for UNIX. SCO UNIX was the only way to get UNIX on an X-86 based machine, and that costed a lot, so Free BSD decided to port BSD to Intel Hardware.
Like Linux, Free BSD comes with source code for the OS. Linux however doesn't allow you to take an Open Source program and change it and then charge for it. Free BSD does.
Companies seem to like this better than the Linux GPL way, so sometimes a company will use Free BSD over Linux, because they don't have to release the programs they made for free.
Don't let that confuse you though, if you write an application on Linux, you don't have to release it freely, but if you take a GPL application and change it, you can't charge for it, if you take Free BSD and change it enough, you can.
Free BSD and Linux both come with source code though, and neither are low quality.
Some OS come with a statement that you have to pay for them, like with Windows and Mac OS. You can take a Free BSD installation disk and install it in as many machines as you want without paying.
Same with Linux.
Some OS have a connection based license. You can use Windows Server 2003 this way, where you are charged by the number of people connecting. This is a bad idea I think.
Free BSD and Slackware use neither of these, and they are totally free to install on as many machines and servers as you wish to use them on, and it doesn't matter how many people access them, they are still free.
Free BSD is a very good OS. It does however have a few things in it I think could be done better. For one, the hardware support is not as good as with Linux. Going to the Free BSD home page, they make Free BSD out to be the best OS on Earth.
For server use, Free BSD is very good on older or slower hardware. The OS is good for server use as I've stated, but on the Desktop, it could use some work. For putting Free BSD on a very high end machine, you need to
tweak it to work properly, as Free BSD comes with tweaks for low end hardware.
Yahoo! uses Free BSD, and I can tell you, the servers they use with Free BSD have probably been tweaked to the point that they are probably completly custom boxes with a custom Kernel.
Free BSD won't work as well on high end hardware until it has been tweaked a lot.
Free BSD can also be installed over NFS. Assuming you have an NFS server on your network, and assuming the installation files are located on this NFS server. Same goes for the FTP installation.
The Matrix was made with Free BSD. This is something that every Free BSD user likes to point out. Don't worry though, it doesn't make Linux any less, as Linux is used just as much in Hollywood as BSD is.
Free BSD FAQ :
I won't add all of the FAQ for Free BSD, because anyone who has seen it knows that it is VERY large. I'm going to paste on a few things though that I find important so you don't end up wasting space asking questions.
1.1. What is FreeBSD?
Briefly, FreeBSD is a UNIX® like operating system for the Alpha/AXP, AMD64 and Intel EM64T, i386™ IA-64, PC-98, and UltraSPARC® platforms based on U.C. Berkeley's ``4.4BSD-Lite'' release, with some ``4.4BSD-Lite2'' enhancements. It is also based indirectly on William Jolitz's port of U.C. Berkeley's ``Net/2'' to the i386, known as ``386BSD'', though very little of the 386BSD code remains.
FreeBSD is used by companies, Internet Service Providers, researchers, computer professionals, students and home users all over the world in their work, education and recreation.
1.2. What is the goal of the FreeBSD Project?
The goal of the FreeBSD Project is to provide software that may be used for any purpose and without strings attached. Many of us have a significant investment in the code (and project) and would certainly not mind a little financial compensation now and then, but we definitely do not insist on it. We believe that our first and foremost ``mission'' is to provide code to any and all comers, and for whatever purpose, so that the code gets the widest possible use and provides the widest possible benefit. This is, we believe, one of the most fundamental goals of Free Software and one that we enthusiastically support.
That code in our source tree which falls under the GNU General Public License (GPL) or GNU Library General Public License (LGPL) comes with slightly more strings attached, though at least on the side of enforced access rather than the usual opposite. Due to the additional complexities that can evolve in the commercial use of GPL software, we do, however, endeavor to replace such software with submissions under the more relaxed FreeBSD license whenever possible.
1.3. Does the FreeBSD license have any restrictions?
Yes. Those restrictions do not control how you use the code, merely how you treat the FreeBSD Project itself. If you have serious license concerns, read the actual license. For the simply curious, the license can be summarized like this.
Do not claim that you wrote this.
Do not sue us if it breaks.
1.4. Can FreeBSD replace my current operating system?
For most people, yes. But this question is not quite that cut-and-dried.
Most people do not actually use an operating system. They use applications. The applications are what really use the operating system. FreeBSD is designed to provide a robust and full-featured environment for applications. It supports a wide variety of web browsers, office suites, email readers, graphics programs, programming environments, network servers, and just about everything else you might want. Most of these applications can be managed through the Ports Collection.
If you need to use an application that is only available on one operating system, you simply cannot replace that operating system. Chances are there is a very similar application on FreeBSD, however. If you want a solid office or Internet server, a reliable workstation, or just the ability to do your job without interruptions, FreeBSD will almost certainly do everything you need. Many computer users across the world, including both novices and experienced UNIX administrators, use FreeBSD as their only desktop operating system.
If you are migrating to FreeBSD from some other UNIX environment, you already know most of what you need to. If your background is in graphic-driven operating systems such as Windows® and older versions of Mac OS®, expect to invest additional time learning the UNIX way of doing things. This FAQ and the FreeBSD Handbook are excellent places to start.
1.5. Why is it called FreeBSD?
It may be used free of charge, even by commercial users.
Full source for the operating system is freely available, and the minimum possible restrictions have been placed upon its use, distribution and incorporation into other work (commercial or non-commercial).
Anyone who has an improvement or bug fix is free to submit their code and have it added to the source tree (subject to one or two obvious provisions).
It is worth pointing out that the word ``free'' is being used in two ways here, one meaning ``at no cost'', the other meaning ``you can do whatever you like''. Apart from one or two things you cannot do with the FreeBSD code, for example pretending you wrote it, you can really do whatever you like with it.
1.6. What are the differences between FreeBSD and NetBSD, OpenBSD, and other open source BSD operating systems?
James Howard wrote a good explanation of the history and differences between the various projects for DaemonNews, called The BSD Family Tree which goes a fair way to answering this question.
1.7. What is the latest version of FreeBSD?
At this point in FreeBSD's development, there are two parallel development branches; releases are being made from both branches. The 4.X series of releases is being made from the -STABLE branch and the 5.X series of releases is being made from -CURRENT.
Version 5.2.1 is the latest release from the -CURRENT branch; it was released in February 2004. Version 4.10 is the latest release from the -STABLE branch; it was released in May 2004.
Briefly, -STABLE is aimed at the ISP, corporate user, or any user who wants stability and a minimal number of changes compared to the new (and possibly unstable) features of the latest -CURRENT snapshot. Releases can come from either branch, but -CURRENT should only be used if you are prepared for its increased volatility (relative to -STABLE, that is).
Releases are made every few months. While many people stay more up-to-date with the FreeBSD sources (see the questions on FreeBSD-CURRENT and FreeBSD-STABLE) than that, doing so is more of a commitment, as the sources are a moving target.
More information on FreeBSD releases can be found on the Release Engineering page on the FreeBSD Web site.
1.8. What is FreeBSD-CURRENT?
FreeBSD-CURRENT is the development version of the operating system, which will in due course become the new FreeBSD-STABLE branch. As such, it is really only of interest to developers working on the system and die-hard hobbyists. See the relevant section in the handbook for details on running -CURRENT.
If you are not familiar with the operating system or are not capable of identifying the difference between a real problem and a temporary problem, you should not use FreeBSD-CURRENT. This branch sometimes evolves quite quickly and can be un-buildable for a number of days at a time. People that use FreeBSD-CURRENT are expected to be able to analyze any problems and only report them if they are deemed to be mistakes rather than ``glitches''. Questions such as ``make world produces some error about groups'' on the -CURRENT mailing list may be treated with contempt.
Every day, snapshot releases are made based on the current state of the -CURRENT and -STABLE branches. Distributions of the occasional snapshot are made available. The goals behind each snapshot release are:
To test the latest version of the installation software.
To give people who would like to run -CURRENT or -STABLE but who do not have the time or bandwidth to follow it on a day-to-day basis an easy way of bootstrapping it onto their systems.
To preserve a fixed reference point for the code in question, just in case we break something really badly later. (Although CVS normally prevents anything horrible like this happening
To ensure that all new features and fixes in need of testing have the greatest possible number of potential testers.
No claims are made that any -CURRENT snapshot can be considered ``production quality'' for any purpose. If you want to run a stable and fully tested system, you will have to stick to full releases, or use the -STABLE snapshots.
Snapshot releases are directly available from ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/.
Snapshots are generated, on the average, daily for all actively developed branches.
1.9. What is the FreeBSD-STABLE concept?
Back when FreeBSD 2.0.5 was released, FreeBSD development branched in two. One branch was named -STABLE, one -CURRENT. FreeBSD-STABLE is intended for Internet Service Providers and other commercial enterprises for whom sudden shifts or experimental features are quite undesirable. It receives only well-tested bug fixes and other small incremental enhancements. FreeBSD-CURRENT, on the other hand, has been one unbroken line since 2.0 was released, leading towards 5.2.1-RELEASE (and beyond). At 5.3-RELEASE, the 5-STABLE branch is expected to be created, and FreeBSD-CURRENT will become 6-CURRENT. More detail information, see `` FreeBSD Release Engineering: 2.2.1 Creating the Release Branch''.
The 2.2-STABLE branch was retired with the release of 2.2.8. The 3-STABLE branch has ended with the release of 3.5.1, the final 3.X release. The only changes made to either of these branches will be, for the most part, security-related bug fixes.
The 6-CURRENT branch is the actively developed -CURRENT branch toward the next generation of FreeBSD. See What is FreeBSD-CURRENT? for more information on this branch.
1.10. When are FreeBSD releases made?
The Release Engineering Team <re@FreeBSD.org> releases a new version of FreeBSD about every four months, on average. Release dates are announced well in advance, so that the people working on the system know when their projects need to be finished and tested. A testing period precedes each release, in order to ensure that the addition of new features does not compromise the stability of the release. Many users regard this caution as one of the best things about FreeBSD, even though waiting for all the latest goodies to reach -STABLE can be a little frustrating.
More information on the release engineering process (including a schedule of upcoming releases) can be found on the release engineering pages on the FreeBSD Web site.
For people who need or want a little more excitement, binary snapshots are made daily as discussed above.
1.11. Who is responsible for FreeBSD?
The key decisions concerning the FreeBSD project, such as the overall direction of the project and who is allowed to add code to the source tree, are made by a core team of 9 people. There is a much larger team of more than 300 committers who are authorized to make changes directly to the FreeBSD source tree.
However, most non-trivial changes are discussed in advance in the mailing lists, and there are no restrictions on who may take part in the discussion.
1.12. Where can I get FreeBSD?
Every significant release of FreeBSD is available via anonymous FTP from the FreeBSD FTP site:
The latest 5.X release, 5.2.1-RELEASE can be found in the 5.2.1-RELEASE directory.
5.X Snapshot releases are made daily for the -CURRENT branch, these being of service purely to bleeding-edge testers and developers.
The latest 4-STABLE release, 4.10-RELEASE can be found in the 4.10-RELEASE directory.
4.X snapshots are usually made daily.
Information about obtaining FreeBSD on CD, DVD, and other media can be found in the Handbook.
1.13. How do I set up a FreeBSD mirror?
Information on setting up a FreeBSD mirror can be found in the Mirroring FreeBSD article.
1.14. How do I access the Problem Report database?
The Problem Report database of all user change requests may be queried by using our web-based PR query interface. The send-pr(1) command can be used to submit problem reports and change requests via electronic mail.
The web-based problem report submission interface is currently disabled due to persistent abuse.
Before submitting a problem report, please read Writing FreeBSD Problem Reports, an article on how to write good problem reports.
1.15. How do I become a FreeBSD Web mirror?
There are multiple ways to mirror the Web pages.
You can retrieve the formatted files from a FreeBSD CVSup server using the application net/cvsup. The file /usr/share/examples/cvsup/www-supfile contains an example CVSup configuration file for web mirrors.
You can download the web site source code from any FreeBSD FTP server using your favorite ftp mirror tool. Keep in mind that you have to build these sources before publishing them. Start mirroring at ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www/.
1.16. What other sources of information are there?
Please check the Documentation list on the main FreeBSD web site.
2.1. What good books are there about FreeBSD?
The project produces a wide range of documentation, available online from this link: http://www.FreeBSD.org/docs.html. The same documents are available as packages, that you can easily install on your FreeBSD system. More details on documentation packages can be found in the next paragraphs.
In addition, the Bibliography at the end of this FAQ, and the one in the Handbook reference other recommended books.
2.2. Is the documentation available in other formats, such as plain text (ASCII), or PostScript®?
Yes. The documentation is available in a number of different formats and compression schemes on the FreeBSD FTP site, in the /pub/FreeBSD/doc/ directory.
The documentation is categorized in a number of different ways. These include:
The document's name, such as faq, or handbook.
The document's language and encoding. These are based on the locale names you will find under /usr/share/locale on your FreeBSD system. The current languages and encodings that we have for documentation are as follows:
en_US.ISO8859-1 US English
ja_JP.eucJP Japanese (EUC encoding)
ru_RU.KOI8-R Russian (KOI8-R encoding)
zh_TW.Big5 Chinese (Big5 encoding)
Note: Some documents may not be available in all languages.
The document's format. We produce the documentation in a number of different output formats. Each format has its own advantages and disadvantages. Some formats are better suited for online reading, while others are meant to be aesthetically pleasing when printed on paper. Having the documentation available in any of these formats ensures that our readers will be able to read the parts they are interested in, either on their monitor, or on paper after printing the documents. The currently available formats are:
html-split A collection of small, linked, HTML files.
html One large HTML file containing the entire document
pdb Palm Pilot database format, for use with the iSilo reader.
pdf Adobe's Portable Document Format
rtf Microsoft's Rich Text Format[a]
txt Plain text
a. Page numbers are not automatically updated when loading this format into Word. Press CTRL+A, CTRL+END, F9 after loading the document, to update the page numbers.
The compression and packaging scheme. There are three of these currently in use.
Where the format is html-split, the files are bundled up using tar(1). The resulting .tar file is then compressed using the compression schemes detailed in the next point.
All the other formats generate one file, called book.format (i.e., book.pdb, book.html, and so on).
These files are then compressed using two compression schemes.
zip The Zip format. If you want to uncompress this on FreeBSD you will need to install the archivers/unzip port first.
bz2 The BZip2 format. Less widespread than Zip, but generally gives smaller files. Install the archivers/bzip2 port to uncompress these files.
So the PostScript version of the Handbook, compressed using BZip2 will be stored in a file called book.ps.bz2 in the handbook/ directory.
After choosing the format and compression mechanism that you want to download, you must then decide whether or not you want to download the document as a FreeBSD package.
The advantage of downloading and installing the package is that the documentation can then be managed using the normal FreeBSD package management comments, such as pkg_add(1) and pkg_delete(1).
If you decide to download and install the package then you must know the filename to download. The documentation-as-packages files are stored in a directory called packages. Each package file looks like document-name.lang.encoding.format.tgz.
For example, the FAQ, in English, formatted as PDF, is in the package called faq.en_US.ISO8859-1.pdf.tgz.
Knowing this, you can use the following command to install the English PDF FAQ package.
# pkg_add ftp://ftp.FreeBSD.org/pub/FreeBSD/do...8859-1.pdf.tgz
Having done that, you can use pkg_info(1) to determine where the file has been installed.
# pkg_info -f faq.en_US.ISO8859-1.pdf
Information for faq.en_US.ISO8859-1.pdf:
Package name: faq.en_US.ISO8859-1.pdf
CWD to /usr/share/doc/en_US.ISO8859-1/books/faq
CWD to .
File: +COMMENT (ignored)
File: +DESC (ignored)
As you can see, book.pdf will have been installed into /usr/share/doc/en_US.ISO8859-1/books/faq.
If you do not want to use the packages then you will have to download the compressed files yourself, uncompress them, and then copy the appropriate documents into place.
For example, the split HTML version of the FAQ, compressed using bzip2(1), can be found in the doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2 file. To download and uncompress that file you would have to do this.
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/do...-split.tar.bz2
# bzip2 -d book.html-split.tar.bz2
# tar xvf book.html-split.tar
You will be left with a collection of .html files. The main one is called index.html, which will contain the table of contents, introductory material, and links to the other parts of the document. You can then copy or move these to their final location as necessary.
2.3. Where do I find info on the FreeBSD mailing lists?
You can find full information in the Handbook entry on mailing-lists.
2.4. Where do I find the FreeBSD Y2K info?
You can find full information in the FreeBSD Y2K page.
2.5. What FreeBSD news groups are available?
You can find full information in the Handbook entry on newsgroups.
2.6. Are there FreeBSD IRC (Internet Relay Chat) channels?
Yes, most major IRC networks host a FreeBSD chat channel:
Channel #FreeBSD on EFNet is a FreeBSD forum, but do not go there for tech support or try to get folks there to help you avoid the pain of reading manual pages or doing your own research. It is a chat channel, first and foremost, and topics there are just as likely to involve sex, sports or nuclear weapons as they are FreeBSD. You Have Been Warned! Available at server irc.chat.org.
Channel #FreeBSDhelp on EFNet is a channel dedicated to helping FreeBSD users. They are much more sympathetic to questions than #FreeBSD is.
Channel #FreeBSD on DALNET is available at irc.dal.net in the US and irc.eu.dal.net in Europe.
Channel #FreeBSD on UNDERNET is available at us.undernet.org in the US and eu.undernet.org in Europe. Since it is a help channel, be prepared to read the documents you are referred to.
Channel #FreeBSD on HybNet. This channel is a help channel. A list of servers can be found on the HybNet web site.
Each of these channels are distinct and are not connected to each other. Their chat styles also differ, so you may need to try each to find one suited to your chat style. As with all types of IRC traffic, if you are easily offended or cannot deal with lots of young people (and more than a few older ones) doing the verbal equivalent of jello wrestling, do not even bother with it.
2.7. Where can I get commercial FreeBSD training and support?
DaemonNews provides commercial training and support for FreeBSD. More information can be found at their BSD Mall site.
FreeBSD Services Ltd provide commercial support for FreeBSD in the UK (as well as selling FreeBSD on DVD). See their web site for more information.
The FreeBSD Mall provides commercial FreeBSD support. You can get more information at their web site.
Any other organizations providing training and support should contact the project in order to be listed here.
What do I need in order to run FreeBSD?
For versions prior to 5.X, you will need a 386 or better PC, with 5 MB or more of RAM and at least 60 MB of hard disk space. It can run with a low end MDA graphics card but to run X11R6, a VGA or better video card is needed. For FreeBSD 5.X you will need a 486 or better PC, with 8 MB or more of RAM and at least 150 MB of hard disk space.
3.5. I have only 4 MB of RAM. Can I install FreeBSD?
FreeBSD 2.1.7 was the last version of FreeBSD that could be installed on a 4MB system. FreeBSD 2.2 and later needs at least 5MB, and FreeBSD 5.X needs at least 8MB to install on a new system.
Recently it has been proven that you in fact are going to need about 16 MBs of RAM.
All versions of FreeBSD prior to 5.X will run in 4MB of RAM, they just cannot run the installation program in 4MB. You can add extra memory for the install process, if you like, and then after the system is up and running, go back to 4MB. Or you could swap your disk into a system which has >4MB, install onto the disk and then swap it back.
After the installation, if you build a custom kernel, it will run in 4 MB. Someone has even successfully booted with 2 MB, although the system was almost unusable.
Windows killed my boot manager! How do I get it back?
You can reinstall the boot manager FreeBSD comes with in one of three ways:
Running DOS, go into the tools/ directory of your FreeBSD distribution and look for bootinst.exe. You run it like so:
...\TOOLS> bootinst.exe boot.bin
and the boot manager will be reinstalled.
Boot the FreeBSD boot floppy again and go to the Custom installation menu item. Choose Partition. Select the drive which used to contain your boot manager (likely the first one) and when you come to the partition editor for it, as the very first thing (e.g. do not make any changes) select (W)rite. This will ask for confirmation, say yes, and when you get the Boot Manager selection prompt, be sure to select ``Boot Manager''. This will re-write the boot manager to disk. Now quit out of the installation menu and reboot off the hard disk as normal.
Boot the FreeBSD boot floppy (or CDROM) and choose the ``Fixit'' menu item. Select either the Fixit floppy or CDROM #2 (the ``live'' filesystem option) as appropriate and enter the fixit shell. Then execute the following command:
Fixit# fdisk -B -b /boot/boot0 bootdevice
substituting bootdevice for your real boot device such as ad0 (first IDE disk), ad4 (first IDE disk on auxiliary controller), da0 (first SCSI disk), etc.
Which geometry should I use for a disk drive?
Note: By the ``geometry'' of a disk, we mean the number of cylinders, heads and sectors/track on a disk. We will refer to this as C/H/S for convenience. This is how the PC's BIOS works out which area on a disk to read/write from.
This causes a lot of confusion among new system administrators. First of all, the physical geometry of a SCSI drive is totally irrelevant, as FreeBSD works in term of disk blocks. In fact, there is no such thing as ``the'' physical geometry, as the sector density varies across the disk. What manufacturers claim is the ``physical geometry'' is usually the geometry that they have determined wastes the least space. For IDE disks, FreeBSD does work in terms of C/H/S, but all modern drives internally convert this into block references.
All that matters is the logical geometry. This is the answer that the BIOS gets when it asks the drive ``what is your geometry?'' It then uses this geometry to access the disk. As FreeBSD uses the BIOS when booting, it is very important to get this right. In particular, if you have more than one operating system on a disk, they must all agree on the geometry. Otherwise you will have serious problems booting!
For SCSI disks, the geometry to use depends on whether extended translation support is turned on in your controller (this is often referred to as ``support for DOS disks >1GB'' or something similar). If it is turned off, then use N cylinders, 64 heads and 32 sectors/track, where N is the capacity of the disk in MB. For example, a 2GB disk should pretend to have 2048 cylinders, 64 heads and 32 sectors/track.
If it is turned on (it is often supplied this way to get around certain limitations in MS-DOS®) and the disk capacity is more than 1GB, use M cylinders, 63 sectors per track (not 64), and 255 heads, where 'M' is the disk capacity in MB divided by 7.844238 (!). So our example 2GB drive would have 261 cylinders, 63 sectors per track and 255 heads.
If you are not sure about this, or FreeBSD fails to detect the geometry correctly during installation, the simplest way around this is usually to create a small DOS partition on the disk. The BIOS should then detect the correct geometry, and you can always remove the DOS partition in the partition editor if you do not want to keep it. You might want to leave it around for programming network cards and the like, however.
Alternatively, there is a freely available utility distributed with FreeBSD called pfdisk.exe. You can find it in the tools subdirectory on the FreeBSD CDROM or on the various FreeBSD FTP sites. This program can be used to work out what geometry the other operating systems on the disk are using. You can then enter this geometry in the partition editor.
Are there any restrictions on how I divide the disk up?
Yes. You must make sure that your root partition is below 1024 cylinders so the BIOS can boot the kernel from it. (Note that this is a limitation in the PC's BIOS, not FreeBSD).
For a SCSI drive, this will normally imply that the root partition will be in the first 1024MB (or in the first 4096MB if extended translation is turned on - see previous question). For IDE, the corresponding figure is 504MB.
Do I need to install the complete sources?
In general, no. However, we would strongly recommend that you install, at a minimum, the base source kit, which includes several of the files mentioned here, and the sys (kernel) source kit, which includes sources for the kernel. There is nothing in the system which requires the presence of the sources to operate, however, except for the kernel-configuration program config(8). With the exception of the kernel sources, our build structure is set up so that you can read-only mount the sources from elsewhere via NFS and still be able to make new binaries (due to the kernel-source restriction, we recommend that you not mount this on /usr/src directly, but rather in some other location with appropriate symbolic links to duplicate the top-level structure of the source tree).
Having the sources on-line and knowing how to build a system with them will make it much easier for you to upgrade to future releases of FreeBSD.
To actually select a subset of the sources, use the Custom menu item when you are in the Distributions menu of the system installation tool.
3.24. Do I need to build a kernel?
Building a new kernel was originally pretty much a required step in a FreeBSD installation, but more recent releases have benefited from the introduction of much friendlier kernel configuration methods. In 4.X and earlier, when at the FreeBSD boot prompt (boot, use the -c flag and you will be dropped into a visual configuration screen which allows you to configure the kernel's settings for most common ISA cards. In FreeBSD 5.X this has been replaced by much more flexible "hints" which can be set from the loader prompt.
It may still be worthwhile building a new kernel containing just the drivers that you need, just to save a bit of RAM, but it is no longer necessary for most systems.
Should I use DES, Blowfish, or MD5 passwords and how do I specify which form my users receive?
The default password format on FreeBSD is to use MD5-based passwords. These are believed to be more secure than the traditional UNIX® password format, which used a scheme based on the DES algorithm. DES passwords are still available if you need to share your password file with legacy operating systems which still use the less secure password format (they are available if you choose to install the ``crypto'' distribution in sysinstall, or by installing the crypto sources if building from source). Installing the crypto libraries will also allow you to use the Blowfish password format, which is more secure. Which password format to use for new passwords is controlled by the ``passwd_format'' login capability in /etc/login.conf, which takes values of ``des'', ``blf'' (if these are available) or ``md5''. See the login.conf(5) manual page for more information about login capabilities.
Why does the boot floppy start, but hang at the Probing Devices... screen?
If you have a IDE Zip® or Jaz® drive installed, remove it and try again. The boot floppy can get confused by the drives. After the system is installed you can reconnect the drive. Hopefully this will be fixed in a later release.
What are the limits for memory?
The limit is 4 gigabytes on a standard i386™ install. Beginning with FreeBSD versions 4.9 and 5.1, more memory can be supported through pae(4). This does require a kernel recompile, with an extra option to enable PAE:
FreeBSD/pc98 has a limit of 4 GB memory, and PAE can not be used with it. On FreeBSD/alpha, the limit on memory depends on the type of hardware in use - consult the Alpha Hardware Release Notes for details. Other architectures supported by FreeBSD have much higher theoretical limits on maximum memory (many terabytes).
What are the limits for ffs filesystems?
For ffs filesystems, the maximum theoretical limit is 8 terabytes (2G blocks), or 16TB for the default block size of 8K. In practice, there is a soft limit of 1 terabyte, but with modifications filesystems with 4 terabytes are possible (and exist).
The maximum size of a single ffs file is approximately 1G blocks, or 4TB with a block size of 4K.
What are these ``security profiles''?
A ``security profile'' is a set of configuration options that attempts to achieve the desired ratio of security to convenience by enabling and disabling certain programs and other settings. For full details, see the Security Profile section of the Handbook's post-install chapter.
What can you do with Free BSD? And can you do it with Slackware Linux as well?
I'm trying to make a list here for things I know of people using Free BSD to do, and also putting in if Slackware can do it to, and maybe which one is better at it in my opinion.
File and print sharing:
Samba makes it possible for Free BSD to work as a file or print sharing server for Windows networks. Free BSD can even be used as a PDC (Primary Domain Controller) for Windows.
Slackware Linux can do this too, as Samba comes with both OS.
Web Services :
Free BSD powers some of the biggest Web Servers in the whole World. Free BSD can be a good Internet Web Server, or even be used as an Intranet Server for a business. Generally Apache is used for this.
Can Slackware do that?
Slackware coms with Apache like Free BSD does, and they both are used to power web servers. Yahoo! May be powered by Free BSD on high end hardware, but http://www.slackware.com is being run off of a Pentium 3 with 512 MB RAM running Slackware Linux. If this isn't a display of power I don't know what is. One machine, and only a PC at that. I guess that would be a point for both Free BSD and Slackware.
E-Mail Services :
Free BSD makes a great Mail server. You can set up a mail server for your company, or for your LAN at home using Free BSD. Even a 486 is powerful enough using Free BSD for this task.
Slackware can do that too. Both run fine on a 486, both come with Sendmail by default, even though I've already said my part about Sendmail, but you can still install Postfix
Both Free BSD and Slackware Linux will get points for this one as well. Meaning so far in this area, they are even.
Routing, DNS Services, and Internet Sharing:
Taking another 486, you can turn it into a very useable, and serviceable nice router, DNS, or gateway for sharing single internet connection with multiple computers.
Can Slackware Linux do that?
Slackware also comes with the tools needed to do this.
Databa Solutions :
Using Free BSD and one of the freely available SQL Databases for it, you can create a database solution for free that could easily cost tens of thousands of dollars to omplements with commercial software.
If the freely available databases don't have the horsepower for your needs, you can run the Linux version of Oracle on Free BSD because FreeBSD can run most Linux applications as well as Linux itself.
I guess it's safe to say Linux can do this too, and even better it seems.
Beyond the Telco Closet
Free BSD and Slackware on the Desktop:
For people who have no use for all the features just named, there is no reason to not use Linux or Free BSD just because you don't need a server. Here are a few uses that Free BSD and Linux can be used for on the Desktop. Some are from reading and some are from my personal experience again:
Developing and testing Web Sites:
Before I had a computer, people used to do "Static HTML", and those days are pretty well gone. Web pages now are server side technologies like CGI, embedded scripting, and database back ends to display content that is dynamic and interactive.
This means that testing your web pages by loading the pages into your browser from your HD are also going away, and you'll want a web server for developing web pages so you can test them out with Server Side technologies like the ones listed.
You can save yourself time and money just by simply loading Free BSD or Slackware Linux with Apache and PHP and a Database and start testing out your website before loading it to a company you pay to host it, and this can save money. Of course you could also run your web site yourself on your box, but this is about the desktop, not the server.
Learning Software Development and Programming :
Free BSD and Linux come with everything you should need to start learning C, C++, Java, PHP, PERL, and many other type of coding.
Learning about OS design and or UNIX :
If you want to learn the ins and outs of your OS, what better way than having the source code to the whole thing right there? Free BSD and Slackware Linux come with source code to just about all the things you run, including the Kernel itself.
It can save you time so you won't have to spend all day in a lab when you can do all your UNIX work at home. Free BSD and Slackware can both help you with this, but for this particular task, I'd recommend both, as Linux and Free BSD are a little bit different. FreeBSD is an actual UNIX, and Slackware Linux is UNIX like.
Free and Open Source Software for cheap workstations:
I use Free BSD and Linux as workstation at home. This paper is being written on one of them in two other applications freely available: Vim and Emacs. They cost nothing and you can give them away too.
Free BSD and Linux are also getting better at being Desktop OS. This wasn't always true, but now Free BSD and Slackware are easy to install and actually come with a lot of Desktop tools, like MP3 players, Web Browsers that won't load your machine with spyware, and Instant Messaging Clients.
When Free BSD starts up, it is very similar to Linux when you use Lilo or Grub in text mode. It shows a lot of text flying on your screen as it starts up services and checks things on your system. Add more here about differences in start up.
Security in Free BSD:
Free BSD may be one of the most stable OSs in the world. On the Netcraft website that shows the top 50 uptimes of web servers on the internet, almost all of the machines listed are running Free BSD on any given week. A few machines here have uptimes of nearly 5 years.
This is great, but I know for a fact that a few Kernel patches have been released in the last 5 years, and this means these boxes have not been patched. The number of people who can look on Netcraft and check uptimes of these machines, is almost like hanging a sign on the window saying "I'm not patched, own me".
Any person who wants to break into a server can easily go to Netcraft, find out the OS and Web server software of a website, and then check the patches that have been released for the OS the server is running on, and then compare the uptime to how long ago a patch was released, and Boom! you now know exactly what exploit you need.
Note to all admins:
Quit giving the kids such an easy task. Get up, and actually patch the machines you are in charge of!
Free BSD has not always had a good security track record. Some used to compare it to Microsoft. That was of course a while back though. I believe that any OS can be secure, or not secure, depending on the person operating it. Any user can take Open BSD, and make horrible security choices, and open up holes in it, and anyone can also take something like, say Windows ME, and secure it beyond anyone's wildest dreams.
Before I get to far into this, one good place to learn about Free BSD security, is http://freebsd.org/security/
They give a good yet biased show of Free BSD.
Another thing to add:
If you find a security hole in Free BSD, send an e-mail too:
Letting them know about any problems you may find is best, don't keep it to yourself, and don't become a "0-Day Exploit" guy. Free BSD is used on many servers, and problems should be fixed.
Another thing to mention while on subject would be to remind users of Free BSD, that you should NEVER use the -CURRENT branch of Free BSD unless you are a developer. The -CURRENT branch does not get advisories, as it is not meant for production, so don't use it unless you are testing.
Always stick with something in the -STABLE branch.
Another way to stay on top of the game with security, and just general chat about Free BSD, is to join one of the many mailing lists, which can be found here:
That will show you a list of mailing lists you can sign up for.
One of the things about Free BSD is the "ports" collection. For information about this, please see:
I will discuss port later on.
Advisories for security issues are sent to these mailing lists (Taken from the Free BSD security page) :
If you notice on the Free BSD security page, 44 advisories of varying severity were issued for the base system. This is a high number considering it was just the base system, but then again this was also 2 years ago.
A look at the number of security patches for Free BSD 4.3 shows almost 200 to date. For Free BSD 4.4 there is less than half of this. Free BSD 4.7 only has 4, which is really good, but it's not exactly old either. The Free BSD security FTP server, located at ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/ lists 298 files. 290 of these are updates, and 8 are folders leading to more.
If you were to compare Free BSD to Slackware based on the number of fixes, Slackware would probably become the winner there.
Free BSD and Slackware both have one thing against it already in security:
They both use sendmail.
Sendmail is one of the most insecure applications ever written. It's in very wide use because it is very configurable, but it still could use a complete rewrite. I recommend Postfix, it's written to be more secure, and unlike Sendmail, configuring it won't make you want to cry.
This is of course, only my opinion, and I've had quite a few discussions on this where I was called a few things that shouldn't be printed in this paper, because although in my opinion Sendmail is to big for it's own good, some people still swear by it.
Personally, I swear AT it.
I don't recommend Sendmail at all, as there are much better alternatives. But, this is not about Sendmail, this is about Slackware and Free BSD.
Free BSD is very odd with patches. If you use Free BSD I highly recommend you go to the Free BSD web page and read a lot.
UNIX in general has had an odd history. One of the UNIX standards I very much like, is "Make one program to do one thing very well". To me this makes more sense than to have large programs doing multiple things "OK" and just barely getting by.
This is a great idea. Can you think of a basic text editor better than Vi? This document is being written in Vim, made from Vi, and standing for "Vi - Improved". Vi edits and creates text files, and does it very well. I don't need it to check my E-Mail at the same time, so why bloat it with un-needed functions?
So with all this talk, what is Free BSD? Well, Free BSD is an OS derived from AT&T's UNIX OS, and is not as widely known as Linux has been over the years. BSD has been around quite a long time.
Some people say Free BSD is more advanced than Linux, and is better for server use. Personally I think this is an opinion. Linux or BSD has been a question from UNIX newbies for as long as I can remember reading about the subject.
My personal taste after using both for a while has always been Linux. I'll get to that later though.
Free BSD does have a few things in place to try and help security, and during the install you choose which security profile to choose. Most people probably choose a high level. Linux usually doesn't have the same set up, but can and usually is just as secure, if not more.
Free BSD lets you pick a security level, but usually Linux lets you set up a firewall as you install.
Free BSD does have a firewall. It's called IPFW. If you use Free BSD and don't know how to use this, I would recommend the book "Free BSD Unleashed". My copy of this book from a few months ago has a very nice section on setting up Free BSD's IPFW.
Free BSD Features : (Most if not all also apply to Linux.) (Borrowed mainly from "The Complete Free BSD". An amazing book that I've read probably 300 times. I didn't attempt to "steal" all of this from the book, but they wrote it so nicely I didn't bother trying to re-create it, so a lot of the features I'm listing in this section were NOT written by me, they were in the book I mentioned above. A book I recommend ANYONE interested in computing to buy.)
Free BSD is a 32-bit OS on Intel and compatible platforms. It contains no 16 bit code whatsoever like some so called 32 bit OS, and so it runs at a higher performance.
On the Alpha, Free BSD is a 64 bit OS.
Free BSD uses Peemptive Multi Tasking with dynamic priority adjustment to ensure smooth and fair sharing of the computer between applications and users.
Free BSD is a multi user system; Many people can access Free BSD at the same time for unrelated purposes. The OS shares peripherals such as printers, tape drives, and other components between all users on the system.
Free BSD provides TCP/IP networking including SLIP, PPP, NFS, amd NIS support. Linux has the same, and both can be used to talk to just about any other system on a network, or be used as an enterprise server, running your E-Mail server, Web Server, FTP server, Database Server, NFS Server, pretty much anything where stability is an important thing.
These are just a few features of Free BSD that are in the book I mentioned. Again, it is a very good book.
Anyone can tell you that Free BSD is one of the most stable OSs on the planet. The top 50 uptimes from netcraft shows that almost every box is running BSD at any given day.
These boxes generally have been up and online for around 5 years. You can download this OS free of charge and it's that stable. The same goes for Slackware. Which to choose from is usually the problem some companies may face, and hopefully after reading this, you will have an idea as to which you'd like.
So what are some things that you can do with Free BSD?
Just about anything really. The source code for Free BSD comes with it, as it does in Linux, so if you need to, and you're a coder, you can easily change Free BSD around and use it to whatever you want.
Some examples would be :
The Internet was built around Berkeley UNIX. The original TCP/IP implemenation, which was made in 1982, was based on 4.2BSD, and nearly ever TCP/IP implementation has borrowed from it since.
Computer science students generally like UNIX, as it's one of the best OS in the World to learn on, and Free BSD and Linux are great for this, as they both come with source code for the entire OS, and they are easy to get.
Just ask the old looking guy with the UNIX shirt on you may see at your College how much it costed to get a UNIX machine for your home back in the 80s.
Both OS can also be used for other purposes, like programming, web development, servers, workstations, and for anything you'd use any other OS for.
SlackWare Linux :
SlackWare Linux is one of the most popular distributions ever made, and one of the oldest still standing. SUSE is about a year or two older than Slackware, and even sold Slackware installation disks for a while when they first started out.
Slackware Linux is very similar to BSD. They all use .tgz files as the method for installation and updating applications, and athough a small detail, they both default to Runlevel 3. Not a big deal really, but there is more to it than this.
If you look on the Slackware web page, you can see something about it being BSD. I found this odd, but it is true. They are very similar.
Go there, and you can see for yourself. It says that Slackware is a registered trademark of BDSi and Pat. I'm not sure what it means or how they mean it, but it is odd.
I'm trying to make this as non-baised as possible, but I really do love Slackware.
One big difference Slackware has that makes it better for use than Free BSD is drivers. Slackware seems to support a lot more hardware than Free BSD does. As I stated before, Slackware and Free BSD were placed on the exact same machine, and I started playing with them to see which did what better.
The machine I was originally going to use had to be changed for a different one because Free BSD couldn't find the hardware in it like Slackware was able to do. This may not be a problem with a server, but I am including Desktop machines too.
I have given a link to the google groups for Slackware, as there can be some good discussions there.
Here is a link to a package for Slackware which will actually check a package
for you and see what dependencies this package relies on, which can help you
when you want to remove a package from your system.
I've been trying in this paper to keep everything my own work, but I wanted too add this in, as I think it should be here. This is supposed too teach you a bit about Free BSD and Slackware and some differences between each, and so I think that adding the FAQ for the OSs is more than on topic:
After installation, my ethernet, CDROM drive, and/or other hardware that I thought Linux supported doesn't work. Why?
Probably because the kernel you're running doesn't contain the support. To fix the problem, you'll have to install a kernel that does. There might a suitable kernel in the /kernels directory on the CDROM, or you can compile a custom kernel for your machine. This isn't too difficult -- see the instructions below about compiling a new kernel.
You can also try loading the device driver in the form of a kernel module. There are drivers for nearly all the hardware supported by Linux in the /modules directory on the CDROM, or in your /lib/modules directory if you've installed the modules.tgz package. Take a look at your /etc/rc.d/rc.modules file for examples of how to load these.
Emacs dumps core, complains of a missing library, or lacks X11 support!
The GNU Emacs series includes your choice of a version with X11 support, or one without. Make sure you have the right binary for your machine.
The binary supporting X11 is installed as part of a package on the first disk that you'll need to install whether you want X11 support or not. If you DO NOT want X11 support, install the package 'emac_nox.tgz' on the last disk of the Emacs series.
If you just install all of the disks, you don't get X11 support. It had to be one way or the other, so if you're not paying attention when you install at least this way it will run no matter what.
How can I change (or get rid of) the color ls?
Read the man page, and check out the file /etc/DIR_COLORS. You can configure the colors any way you like, or shut them off entirely. Also, you can copy /etc/DIR_COLORS into your home directory as '.dir_colors' to override the global defaults on a user by user basis.
How can I install and remove software now that the Slackware Linux distribution is installed on my machine?
To remove packages, type "pkgtool" and follow the prompts. Pkgtool will also allow you to add packages that are in the current directory.
The preferred way to install software is with the "setup" script. When you do your initial installation, setup puts a copy of itself in your /sbin for future use. You can also add software to your machine using the boot/install disk, if you really want to.
When adding software to a running system via NFS, it is preferable to mount the partition yourself and then use the 'install from a mounted directory' feature of setup.
There are also command line utilities that allow you to create, install, and remove packages. For these, you should refer to the manpages: installpkg(8), removepkg(8), makepkg(8), explodepkg(8). A simple example of how you would install a package with installpkg:
How do I get my sound card to work?
Look in /etc/rc.d/rc.modules under the Sound Support section. There are several examples of modprobe lines for various sound cards. Yours may be listed. If it isn't, you can look in /usr/src/linux/Documentation/sound for specific sound card information. Once you have the appropriate modprobe line or lines for your sound card, add them to /etc/rc.d/rc.modules to have the driver load at boot time.
I can't get anything to work at all! What's the deal?
If you seem to suffer catastrophic failure (!), then check the file FILE_LIST on ftp.cdrom.com in /pub/linux/slackware against the contents of your disks and make sure you're not missing any files.
Also, I've noticed that most of the reports of kernel panics and system hangs have come from people with 4MB. If you're running into these types of problems I'd suggest forking over the $$$ for 4 more meg. I have 8 MB of RAM and never have crashes. (well, only when I really push my luck) If you don't want to do that, then go through your /etc/rc.d/rc.* files and get rid of any daemons you don't use, like crond, lpd, or selection.
If you've got 4 MB and you're getting 'virtual memory exceeded in new' warnings, make sure you set up and activate a swap partition before running setup. If you're really hard up on memory, you can boot a rootdisk using 'editroot' instead of one of the usual boot kernels. This will mount the floppy in the root drive, and you'll have to install from the other drive or from the hard drive. You will also not be able to create any kind of boot disk, so you'll have to install LILO and take your chances. I only suggest using this approach if a swapfile will not work.
I can't get the kernel to see a CDROM connected to a Soundblaster 16 IDE!
First, be sure you're using the proper kernel -- the one needed in this case is the IDE/ATAPI CDROM type, not the SBPCD type. Then, if you still have problems, use the secondary IDE channel (IRQ 15 0x170), and make sure the drive is set as master (jumper in the back) and not as slave (a common default).
I just built a new kernel. Now how to I go about replacing my existing kernel with this new bzImage file?
First, you must prepare the new kernel. If you're using UMSDOS, you'll want your system to boot read-write. Otherwise, you'll want it to boot read-only so your filesystems can be safely checked. So, do this:
rdev -R bzImage 0
For any other filesystem type:
rdev -R bzImage 1
Then, you'll need to set the root partition. For example, if your root Linux partition is /dev/hda2, you'd do this:
rdev bzImage /dev/hda2
Then, you can set a video mode if you like. As an example, this sets normal 80x25 console mode:
rdev -v bzImage -1
Other modes include: -3 = Prompt, -2 = Extended VGA. You might need to remove a line in your /etc/lilo.conf that forces normal video if you use LILO and wish to try an extended video mode.
Next, you need to install the kernel. If you boot from a floppy disk, you can simply stick a formatted floppy into your drive and write the bzImage to it like this:
cat bzImage > /dev/fd0
If you use lilo, you should copy the bzImage to where your lilo.conf expects it to be (probably /vmlinuz) and then reinstall lilo. This should work if you used Slackware's liloconfig script to set up LILO. (this is the script setup uses)
cp bzImage /vmlinuz ; lilo
You may wish to back up your existing /vmlinuz first.
If you use Loadlin, copy the kernel to your DOS partition where Loadlin can see it (if you use UMSDOS, you won't need to do this). Then, start Linux from DOS like this:
c:loadlinloadlin.exe c:linuxvmlinuz root=/dev/hda2
That should do it.
I just installed and now I can't login as root! How am I supposed to know the password?
Default installations will have no password on the root account. Just login as root and hit enter when it asks for the password. If you set the password during the setup program, you will want to use that instead of just hitting enter.
I loaded the driver for my sound card, but I can only play sounds as root. How can I let all users play sounds?
The easiest way is to open up the permissions on /dev/dsp* and /dev/mixer* to all users:
chmod 666 /dev/dsp*
chmod 666 /dev/mixer*
I start X with "startx" and it works OK, but I can't switch virtual consoles. Why?
On a Linux text screen, you switch virtual consoles with Alt-F1 through Alt-F8. Under XFree-86, you must use Ctrl-Alt-F1 through Ctrl-Alt-F8. Another useful 'secret' key combination is RightShift-PgUp/PgDown for scrollback. (a random amount ranging from none to a few pages, depending on the state of your video text buffer memory)
I'm using UMSDOS and would like to use the same swapspace under Windows and Linux. Can this be done?
If you want to share a Linux-UMSDOS swapfile with MS-Windows, you can do the following:
1. Create PERMANENT(!) swap file in MS-Windows with size NNNN kbytes.
2. In /etc/rc.d/rc.local add the following lines:
rm -f /DOS/windows/spart.par <--- Needed in order to suppress Windows complain on next start!
mkswap /DOS/386spart.par NNNN
3. In /etc/rc.d/rc.0 add "swapoff" for this file.
My backspace is acting strangely under X? How can I fix it?
Well, I've never noticed a real problem, but I occasionally hear about this. You might want to try adding this to your .Xmodmap in /usr/X11/lib/X11/xinit or /:
keycode 22 = BackSpace
What does "Bus error" mean?
Usually it means your machine has run out of RAM. See if you can set up some swap space or a swap file -- that should fix the problem.
What's the easiest way to get my printer working?
We include APS Filter with Slackware, which makes the printer setup process quite easy. First, make sure you have these packages installed:
As root, you will want to run this command:
That program will walk you through setting up your printer. You should refer to the Printing-HOWTO and the Printing-Usage-HOWTO for more information.
When I installed Slackware, the system could see my CD-ROM just fine. But, when I try to boot using LILO or the bootdisk the system doesn't find the CD-ROM drive anymore! How can I fix this?
The problem is probably that you used a bootdisk with support for your CD-ROM drive, but didn't install a kernel with support.
If you're ready to try compiling a kernel, you can easily solve this problem by compiling a custom kernel (see the section about compiling a Linux kernel) or, you can load the CDROM driver in the form of a kernel module. You can do this by editing the /etc/rc.d/rc.modules file to load the module for your CDROM drive the next time you boot.
Here's the section of the file that loads CDROM drive modules:
# These modules add CD-ROM drive support. Most of these drivers will probe
# for the I/O address and IRQ of the drive automatically if the parameters
# to configure them are omitted. Typically the I/O address will be specified
# in hexadecimal, e.g.: cm206=0x300,11
#/sbin/modprobe aztcd aztcd=
#/sbin/modprobe cdu31a cdu31a_port= cdu31a_irq=
#/sbin/modprobe cm206 cm206=,
#/sbin/modprobe gscd gscd=
#/sbin/modprobe mcd mcd=,
#/sbin/modprobe mcdx mcdx=,
#/sbin/modprobe optcd optcd=
# Below, this last number is "1" for SoundBlaster Pro, or "0" for a clone.
#/sbin/modprobe sbpcd sbpcd=,1
#/sbin/modprobe sonycd535 sonycd535=
#/sbin/modprobe sjcd sjcd=
To use one of these, edit out the '#' in front of the line for your CDROM drive. If you know the I/O address and/or IRQ for your board, fill it in on the line. For example, you might change the sbpcd line to look like this if you've got a SoundBlaster CDROM at 0x300:
/sbin/modprobe sbpcd sbpcd=0x300,1
If you need to access your CDROM drive so that you can get the modules package installed, use the same bootdisk you installed the system with to get into your machine. Use a command like this on the LILO prompt, but replace the root device name with the one you used on your machine:
Once you're logged in, install the modules package:
Why can't I cut and paste from elvis (vi) in an xterm?
Later versions of elvis use the mouse for cursor positioning instead. If you want to cut and paste, hold the left shift key down while you use the mouse.
Why can't I use the new ghostscript with X?
Make sure you have gs_x11.tgz from disk XAP1 installed.
Why do I get "network unreachable" under Slackware?
There are a couple of possibilities. For most users, things work right out of the box. However, if you're running into this problem here are two workarounds you can try:
1. Reverse the broadcast and netmask arguments (and their variables) in the call to ifconfig in /etc/rc.d/rc.inet1. Make sure you are not trying to route your own IP address - you shouldn't have to.
2. Make sure /etc/networks is properly configured.
3. You may want to try the 'netconfig' script. It's not perfect, but does a pretty good job.
4. Make sure the kernel you're using supports your hardware. Most of the kernels provided with Slackware include a /boot/config file where you can look up the compilation options.
Why do my /etc/issue and /etc/motd keep resetting themselves at boot time?
The /etc/rc.d/rc.S resets them out every time you boot after figuring out which kernel you're running -- otherwise the kernel version printed at login might not stay current.
If you want to write your own /etc/issue and /etc/motd, you need to comment out that part of /etc/rc.d/rc.S.
Why do my compiles sometimes die with 'signal 11: internal compiler error'?
This indicates a hardware problem in about 99% of the cases. It can usually be fixed by increasing the number of wait states in the CMOS settings. It can almost always be fixed by turning off the RAM cache, but this should be your last resort since it will cause a noticeable slowdown.
Another common reason for this problem is heat, particularly in the case of an overclocked CPU. I've had some machines suffer from this over the years, especially under heavy load. If the signal 11 problem seems more common when the machine's been running for a while, it could well be heat-related. Try running the machine with the case open. If that doesn't seem to help, aim a fan at the motherboard. (I've had to run machines containing hot-running SCSI drives this way for their entire lives) A quality CPU fan helps a lot, too. If you have an underpowered fan/heatsink, consider a replacement from TennMax (www.TennMax.com). I've had excellent results with their fans. (a dual-fan model stabilized my P2-450)
For more information on causes and cures of the signal 11 problem, see the latest version of the Signal 11 FAQ at http://www.bitwizard.nl/sig11/
The French translation can be found at:
Why doesn't my bus mouse work? The kernel, selection, the X server and test-mouse all say "no such device."
The kernels distributed with Slackware don't have the drivers for busmice compiled in. Last time I tried to include all of them there were horrible driver conflicts -- better to leave them out if they can't coexist. Obviously, it's not feasible for me to provide versions of every precompiled kernel for each type of busmouse. I only have a 386. ;^)
(I'm only kidding, As of 3/1999, I'm running a P2-450)
The solution is to load support for your mouse from a kernel module. Edit /etc/rc.d/rc.modules and uncomment the line for your mouse:
# Mouse support:
(To uncomment a line in a shell script, you use an editor to remove the '#' from the start of the line)
Why isn't my Sony CDU-31/33a detected by Linux anymore? It used to work!
From the source code:
+ * WARNING - All autoprobes have been removed from the driver.
+ * You MUST configure the CDU31A via a LILO config
+ * at boot time or in lilo.conf. I have the
+ * following in my lilo.conf:
+ * append="cdu31a=0x1f88,0,PAS"
+ * The first number is the I/O base address of the
+ * card. The second is the interrupt (0 means none).
+ * The third should be "PAS" if on a Pro-Audio
+ * spectrum, or nothing if on something else.
You can also use this option with Loadlin:
C:LOADLINLOADLIN C:LINUXVMLINUZ root=/dev/hda1 cdu31a=0x1f88,0,PAS
Or, on the bootdisk LILO: prompt. Examples:
LILO: ramdisk cdu31a=0x1f88,0,PAS
LILO: mount root=/dev/sda1 cdu31a=0x1f88,0,PAS ro
Security in Slackware Linux :
Slackware Linux is One of my favorite OS besides SUSE. I haven't been using it for very long, but in the passed 5 months or so that I have been using it, I have learned a great deal in a short period of time.
Slackware is the most "UNIX" like of the Linux flavors. That was it's main goal, and I think it has gotten there. Slackware doesn't come with as much software as other Linux based OS come with, but it comes with enough so that you can have a full blown workstation or server with what you get on the CDs.
Security wise, Slackware is great. The fact that it doesn't come with as much as others, means you have less software to update, and this is one more step to a secure environment.
Slackware releases security updates, which you can sign up for the news letters to get in your email, or just check http://www.slackware.com and click on security advisories. Either way, you can easily see if something was released which you may need to patch.
Like BSD, unless it's a Kernel patch, you won't be rebooting much. Slackware also has documentation that is second to none. Except SUSE. Slackware's main website has enough to get you going, and stay going.
Slackware also has two tools that are fairly useful for updating the system easily. Swaret and Slapt-get. Swaret I have a little more experiance in, because I've never used Slapt-Get, but it is similar to apt-get for Debian Linux, so if you come over from Debian, this may be the tool for you.
Swaret is a tool I started using about two months ago, and it's very easy to configure, and makes updating easy. Before these things, I used wget to download updates, and then upgradepkg to update the patches I downloaded.
I still do this from time to time, as it's easy to do, and you don't have to have X running for either way. Slackware also has IPtables like any other Kernel does, so you can easily set up rules for firewalling.
Free BSD has something like this called IPFW. I've only set this up once, and it wasn't very hard to do, as there is more than enough online books for it.
Slackware and Free BSD differences:
I borrowed some of this from Free BSD books I own, and I think they were well written, and there is no reason to reinvent the wheel. The rest is my own opinion.
Free BSD is a direct descendent of the original UNIX, although it no longer contains any AT&T code. A lawsuit made sure of that. Linux never contained this, as it was written from scratch, and was a clone of UNIX.
Most of you have probably heard though that Linux has UNIX code in it, and so now both OS have had to contend with a lawsuit which to me seems to be formed from a company who is jelous that their own OS did less than these two have.
It's sad too see computing go backwards like this, but either way, neither OS was at fault, and I don't believe SCO has a clue what they are talking about.
Linux is maintained by Linus Torvalds, and Free BSD is maintained by the core developer team. Some say this makes Free BSD easier to install because the installer hasn't changed, where with Linux, every flavor has it's own installation tool. None of them are very hard to use though.
Linux and Free BSD are both VERY good for server use. Free BSD tries harder for server use, but both seem even in this categorey. Personally, I use both, and if I were setting up a server for a heavy load, I would use Free BSD and a Linux box.
They both are outstanding for this job, and come ready for production use.
For server use, I will say they are even.
Free BSD is said to have the most stable TCP stack in existance. Linux has a TCP stack which was the first of any OS to be fully RFC complient. This still may be the only one.
On a home machine, I think I have to give this one to Slackware. It's much better in my opinion for a Desktop machine than Free BSD. Slackware has a lot more support for hardware than Free BSD seems to have, and Linux in general has a lot more in applications that are ready to contend with Windows.
Linux is ready for contending with Windows on the Desktop, and Free BSD just isn't ready for this. Free BSD believe it to be way to unstable to add flashy toys into the OS when work needs to be done on keeping it stable.
And for the Desktop users who don't want it starting up in Run Level 3 (text mode) here is a bit of help for you to make Slackware boot up in GUI mode:
Edit the file /etc/inittab
Find the line that says id:3:initdefault:
and change it to
Reboot and you will be started at a graphical login.
In your /etc/lilo.conf file add this entry:
image = /boot/vmlinuz
root = /dev/hda1
label = Linux-GUI
append = "4"
Then at the CLI type lilo to update the bootloader.
Use caution with method 2 and make sure that the image location, and root device are correct for your system.
If you recall, the machine I originally wanted to use for tests for this paper had to be changed. Slackware was perfectly fine with it, but Free BSD would NOT install, so I had to format my XP box and use it.
This made me have to ding Free BSD a little, since hardware support is a huge thing with desktop users. How can you say an OS is better if you can't even use it?
I managed to overcome this little step, but what about someone who has never installed before, and wasn't sure what to do? So I had to take points from Free BSD, as Slackware worked without a problem, and even had all hardware configured and ready for use after install completed, 15 minutes later.
Free BSD and Linux both have a large group of Afficionados who flame constantly over which is better. This is somewhat sad. Even though I'm giving Linux more credit because it was able to grab all of my hardware, I still use both. Even though I do use Linux more than Free BSD.
For commercial software, Linux is the winner here. Free BSD has commercial software, but not nearly as much as Linux has. This means nothing to me, but to a company, or a home user who is used to buying software, it does, or may.
Common false security errors of UNIX and Linux and BSD users:
Something a lot of *NIX users and Windows users tend to think in a home
environment, is that they have nothing of value to a bad hacker. They don't
care if they leave a machine somewhat insecure, or have a firewall, because
they believe they have nothing of value to anyone.
This is completely untrue. A few reasons that this is something that will
happen to your unsecured machines would be:
Using your CPU :
Why should an attacker use their own CPU power when they can break into a high
power network, which actually was done not too long ago, where attackers broke
into a Linux network which was being used like a big network for computing
Breaking into these Beowulf clusters can be a very big thing to an attacker,
as they will store password files they have stolen from other machines, and
then use the higher power of the cluster to try and crack the password files,
which takes less time on a powerful network than it would on their own home
Making an attack from your machine:
They may want to use your computer to attack other computers, to make it seem
like YOU are the one attacking these machines. This was done in the 1980s when
some youngsters broke into a University computer system and made it seem as
though it was coming from somewhere else which resulted in the arrest of an
innocent business man.
I myself have had to deal with a similar event in trying to make my moron
cousin believe security is good. He didn't care if he got a virus or anything
else. He never updated his machine, which Windows 98 was on, non patched, no
anti virus, no firewall, nothing.
He didn't care if someone got in, and I had to try and explain how they could
break in, and use his machine to attack others and it would look like he did
it. From what I've experienced, this is very common amongst home users.