mirror of https://github.com/tLDP/LDP
updated
This commit is contained in:
parent
d99980fcde
commit
b4f5c61314
|
@ -3,17 +3,20 @@
|
|||
<title>BogoMips mini-Howto
|
||||
<author>Wim van Dorst, <htmlurl url="mailto:baron@clifton.hobby.nl"
|
||||
name="baron@clifton.hobby.nl">
|
||||
<date>Version 2000-10-21
|
||||
<date>v30, 2000-11-09
|
||||
<abstract>
|
||||
<nidx>BogoMips</nidx><nidx>BogoMips!international</nidx>
|
||||
This text gives some information about BogoMips, compiled
|
||||
from various sources such as news and e-mail.
|
||||
|
||||
This text is retrievable from the various Linux archives in the file
|
||||
<htmlurl url="http://www.hobby.nl/~clifton" name="HOWTO/mini/BogoMips">.
|
||||
Translations are available, as far as I know, in
|
||||
French, Japanese, Italian, German, Polish, Portuguese,
|
||||
<htmlurl url="http://www.linux.org.tw/CLDP" name="Chinese">, and
|
||||
<htmlurl url="http://free.netlap.hu/howto/BogoMips.html" name="Hungarian">
|
||||
This text, in it most up to date version, is retrievable from
|
||||
its homepage at <htmlurl url="http://www.hobby.nl/~clifton"
|
||||
name="www.clifton.nl">, and at the various Linux archives in the file
|
||||
.../HOWTO/mini/BogoMips. Translations are available, as far as I know,
|
||||
in French, Japanese, Italian, German, Polish, Portuguese, <htmlurl
|
||||
url="http://hroch.zero.sk/howto-bogo.shtml" name="Slovak">, <htmlurl
|
||||
url="http://www.linux.org.tw/CLDP" name="Chinese">, and <htmlurl
|
||||
url="http://free.netlap.hu/howto/BogoMips.html" name="Hungarian">
|
||||
from appropriate archives.
|
||||
|
||||
An explanatory article, titled 'the Quintessential Linux Benchmark,'
|
||||
|
@ -28,11 +31,12 @@ be send per e-mail to the author.
|
|||
<toc>
|
||||
|
||||
<sect>Lowest and highest BogoMips ratings
|
||||
<p>
|
||||
The following are the lowest and the highest BogoMips
|
||||
|
||||
<p>The following are the lowest and the highest BogoMips
|
||||
ratings, are reported directly to me, or published on Usenet.
|
||||
|
||||
<sect1>The lowest Linux boot sequence BogoMips value
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
<item>Tim Van der Linden, <tt/timvdl@innet.be/
|
||||
|
@ -41,22 +45,25 @@ ratings, are reported directly to me, or published on Usenet.
|
|||
</itemize>
|
||||
|
||||
<sect1>The highest single-CPU Linux boot sequence BogoMips value
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
<item>Rob Farrell <tt/rpf@speakeasy.net/
|
||||
<item>Intel Pentium III, at 866 MHz
|
||||
<item>1723.60 BogoMips
|
||||
<item>Stuart Trusty, <tt/stuart@linuxlabs.com/
|
||||
<item>AMD Athlon at 1100 MHz
|
||||
<item>2182.35 BogoMips
|
||||
</itemize>
|
||||
|
||||
<sect1>The highest multiple-CPU Linux boot sequence BogoMips value
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
<item>Peter Rival <tt/frival@zk3.dec.com/
|
||||
<item>Peter Rival, <tt/frival@zk3.dec.com/
|
||||
<item>31x Alpha EV67 CPUs, at 731 MHz, SMP
|
||||
<item>46170.90 BogoMips
|
||||
</itemize>
|
||||
|
||||
<sect1>The highest non-Linux BogoMips value
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
<item><tt/zumbusch@iam.uni-bonn.de/
|
||||
|
@ -66,21 +73,21 @@ ratings, are reported directly to me, or published on Usenet.
|
|||
</itemize>
|
||||
|
||||
<sect>The frequently asked questions about BogoMips
|
||||
<p>
|
||||
Several authors have contributed to my knowledge of BogoMips. In
|
||||
|
||||
<p>Several authors have contributed to my knowledge of BogoMips. In
|
||||
this place, I would like to thank them highly.
|
||||
|
||||
<sect1>What are BogoMips
|
||||
<p>
|
||||
Quoted from the Internet, origin currently unknown but
|
||||
brought to the attention by Eric S Raymond <tt/esr@thyrsus.com/,
|
||||
and Geoff Mackenzie <tt/freon@dialstart.net/, there is an humourously
|
||||
illustrative definition of BogoMips as ''the number of million times per
|
||||
second a processor can do absolutely nothing.''
|
||||
<p>
|
||||
On a more precise basis, from Lars Wirzenius'
|
||||
<tt/wirzeniu@kruuna.Helsinki.FI/ mail of 9 September 1993, explaining
|
||||
Bogomips, with additional detailed information by Alessandro Rubini,
|
||||
|
||||
<p>Quoted from the Internet, origin unknown but brought to the attention
|
||||
by Eric S Raymond <tt/esr@thyrsus.com/, and Geoff Mackenzie
|
||||
<tt/freon@dialstart.net/, there is an humourously illustrative
|
||||
definition of BogoMips as ''the number of million times per second
|
||||
a processor can do absolutely nothing.''
|
||||
|
||||
<p>On a more precise basis, from Lars Wirzenius'
|
||||
<tt/wirzeniu@kruuna.Helsinki.FI/ mail of 9 September 1993, explaining
|
||||
Bogomips, with additional detailed information by Alessandro Rubini,
|
||||
<tt/rubini@norgana.systemy.it/, and by Wim van Dorst:
|
||||
|
||||
<quote>
|
||||
|
@ -122,9 +129,15 @@ find . -name '*.[hcS]' -exec fgrep loops_per_sec {} /dev/null \;
|
|||
find . -name '*.[hcS]' -exec fgrep udelay {} /dev/null \;
|
||||
</verb></quote>
|
||||
|
||||
The BogoMips calculation loop for the non Intel CPUs is similar
|
||||
but not the same, because it is programmed in another assembler
|
||||
language. BogoMips is however the only portable way over the various
|
||||
CPUs (Intel-type and non Intel-type) for getting an indication of
|
||||
the CPU speed. Even CPU clock speed is not available on all CPUs.
|
||||
|
||||
<sect1>How to estimate what the proper BogoMips rating should be
|
||||
<p>
|
||||
>From a initiative by Ian Jackson, <tt/ijackson@nyx.cs.du.edu/, and
|
||||
|
||||
<p>From a initiative by Ian Jackson, <tt/ijackson@nyx.cs.du.edu/, and
|
||||
Przemek Klosowski, much updated and expanded by Wim van Dorst for
|
||||
current data, as listed below:
|
||||
|
||||
|
@ -156,6 +169,7 @@ Mips R4600 clock * 1.00 5.6
|
|||
|
||||
Alpha 21264 clock * 1.99 11.1
|
||||
AMD K5/K6/K6-2/K6-III clock * 2.00 11.1
|
||||
AMD Duron clock * 2.00 11.1
|
||||
UltraSparc II clock * 2.00 11.1
|
||||
Pentium MMX clock * 2.00 11.1
|
||||
PowerPC 604/604e/750 clock * 2.00 11.1
|
||||
|
@ -169,13 +183,10 @@ Note that the BogoMips calculation loop does not take full
|
|||
advantage of the parallelism of various processors, such
|
||||
as the Intel Pentium and the Alpha 21164.
|
||||
|
||||
Note that the BogoMips calculation loop for the non-Intel
|
||||
CPUs is similar but not the same.
|
||||
|
||||
|
||||
<sect1>How to determine what the current BogoMips rating is
|
||||
<p>
|
||||
There are three methods to determine the current BogoMips, viz.
|
||||
|
||||
<p>There are three methods to determine the current BogoMips, viz.
|
||||
|
||||
<enum>
|
||||
<item>looking in <tt>/proc/cpuinfo</tt>, e.g., with
|
||||
|
@ -220,8 +231,8 @@ on nearly every system with a C compiler.
|
|||
|
||||
|
||||
<sect1>Variations in BogoMips rating
|
||||
<p>
|
||||
>From Linus Torvalds, <tt/torvalds@cc.helsinki.fi/, explaining about the
|
||||
|
||||
<p>From Linus Torvalds, <tt/torvalds@cc.helsinki.fi/, explaining about the
|
||||
variation one may see in the BogoMips rating, in c.o.l.development,
|
||||
at 28 April 1994
|
||||
|
||||
|
@ -246,7 +257,7 @@ be solved: recompile the kernel specifically for your CPU.
|
|||
NOT change over the various kernel versions. Furthermore, it is
|
||||
intrinsically the same for all CPUs of all makes.
|
||||
|
||||
<p>What did change in kernel version 2.2.13 is the CPU state
|
||||
<p>What did change in kernel version 2.2.14 is the CPU state
|
||||
setting just before the BogoMips calculation. This affects the
|
||||
BogoMips rating for all Intel and AMD Pentium variations, resulting
|
||||
in approximately 2*clock, where these were not 2*clock. The
|
||||
|
@ -254,8 +265,8 @@ entries based on these upgraded kernel versions are marked
|
|||
in the list below with an initial *.
|
||||
|
||||
<sect1>BogoMips ... failed
|
||||
<p>
|
||||
Suggested by various questions on the net and private mail,
|
||||
|
||||
<p>Suggested by various questions on the net and private mail,
|
||||
e.g., by Lily, <tt/lbliao@alumni.caltech.edu/, and by Pierre Frenkiel,
|
||||
<tt/frenkiel@cdfap2.in2p3.fr/. In March 1995 they asked:
|
||||
|
||||
|
@ -294,8 +305,8 @@ needed for your hardware configuration.
|
|||
|
||||
|
||||
<sect1>What about clone CPUs (Cyrix, NexGen, AMD, etc)
|
||||
<p>
|
||||
Cyrix 486-like CPUs need cache enabling software, sometimes
|
||||
|
||||
<p>Cyrix 486-like CPUs need cache enabling software, sometimes
|
||||
referred to as BogoBoost software. Cyrix 5x86 and 6x86 CPUs may
|
||||
have their BogoMips improved drastically by branch-prediction
|
||||
(BIOS option). Note that the performance improvement may be
|
||||
|
@ -315,8 +326,8 @@ K5 and the K6 are Pentium-like CPUs, with their own BogoMips multipliers.
|
|||
|
||||
|
||||
<sect1>Why to pay attention to BogoMips
|
||||
<p>
|
||||
Let me add that there are only two reasons for paying attention
|
||||
|
||||
<p>Let me add that there are only two reasons for paying attention
|
||||
to the BogoMips rating that is presented on booting Linux:
|
||||
|
||||
<enum>
|
||||
|
@ -342,17 +353,16 @@ to the BogoMips rating that is presented on booting Linux:
|
|||
Note that more serious uses for real benchmarking are
|
||||
addressed in the Linux Benchmarking Howto by André D. Balsa.
|
||||
|
||||
|
||||
|
||||
<sect>Compilation of ratings
|
||||
<p>
|
||||
The following table gives some reported BogoMips ratings for various
|
||||
|
||||
<p>The following table gives some reported BogoMips ratings for various
|
||||
systems: more than 1200 entries by more than 1000 different persons, from
|
||||
approximately 50 different countries. Note that the ratings here are
|
||||
from the actual Linux booting sequence, except of course for the
|
||||
section on Non-Linux Systems.
|
||||
|
||||
<sect1>Oddly or faultily configured 386 systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -368,6 +378,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal 386 systems: SX, DX, Nexgen
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -457,6 +468,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Oddly or faultily configured 486 systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -518,6 +530,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal 486 systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -739,6 +752,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal 486 variations: Cyrix/IBM, UMC
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -779,6 +793,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Oddly or faultily configured Pentium systems, or variations
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -799,6 +814,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal Pentium systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -942,6 +958,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal Pentium variations: Intel
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1077,17 +1094,22 @@ section on Non-Linux Systems.
|
|||
* Pentium III/450 901.12 Darrick Wong <DarrickWong@mindspring.com>
|
||||
* Pentium III/500 999.42 Shawn D. MacIntyre <sdm1560@hotmail.com>
|
||||
* Pentium III/500 999.75 Darrick Wong <DarrickWong@mindspring.com>
|
||||
* Pentium III/550 1094.45 Benedicto Junior <benjr@elo.com.br>
|
||||
* Pentium III/550 1101.50 Julius Wijaya <jwijaya@gmx.co.uk>
|
||||
* Pentium III/560 1117.39 Jurriaan <thunder@xs2all.nl>
|
||||
* Pentium III/600 1192.76 Taco IJsselmuiden <taco@wep.tudelft.nl>
|
||||
* Pentium III/600 1192.76 Alex Jenner <alexj@ihug.co.nz>
|
||||
* Pentium III/700 1299.19 Vipul Mathur <vipul@linux-delhi.org>
|
||||
* Pentium III/700 1399.19 Vipul Mathur <vipul@linux-delhi.org>
|
||||
* Pentium III/700 1399.19 Chris Raters <craters@toasty.com>
|
||||
* Pentium III/700 1441.79 <a.giachino@ekkinc.com>
|
||||
* Pentium III/730 1461.45 Timm Murray <admin@madtimes.com>
|
||||
* Pentium III/800 1592.52 Slawomir Axzkowski <slawek@talex.com.pl>
|
||||
* Pentium III/800 1592.52 Simon Horn <dinoming@hotmail.com>
|
||||
* Pentium III/866 1723.60 Rob Farrell <rpf@speakeasy.net>
|
||||
</verb>
|
||||
|
||||
<sect1>Normal Pentium variations: Cyrix, AMD
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1242,6 +1264,7 @@ section on Non-Linux Systems.
|
|||
AMD K6-2/400 808.7 Bob <rebry@@atomicsys.com>
|
||||
AMD K6-III/417 overcl 833.95 Chris Priest <chris@idol.demon.co.uk>
|
||||
AMD K6-2/440 878.18 Steve Bourland <sbourlan@ecn.purdue.edu>
|
||||
AMD K6-III/450 897.84 Craig <craig@pop.uky.edu>
|
||||
AMD K6-2/450 overcl 901.12 Ted E. Suter <nexion@home.com>
|
||||
AMD K6-2/450 overcl 901.12 Juan Domenech <domenech@tarraco.seric.es>
|
||||
AMD K6-2/450 901.12 John Jaeger <john@jjgb.com>
|
||||
|
@ -1250,14 +1273,16 @@ section on Non-Linux Systems.
|
|||
AMD K6-2/455 3D overcl 914.23 Graham Reed <grwr@ssm.ca>
|
||||
AMD K6-2/475 laptop 943.72 Chris Matthews <chris@masc.ca>
|
||||
AMD K6-2/475 overcl 950.27 Willow <el-baul@ole.com>
|
||||
AMD K6-2/475 overcl 950.27 Craig <craig@pop.uky.edu>
|
||||
AMD K6-2/475 950.27 Craig <craig@pop.uky.edu>
|
||||
AMD K6-2/500 999.42 Jon Berlin <jberlin@worldbank.org>
|
||||
AMD K6-2/500 3D 999.42 Laurent <blackm@pop.multimania.com>
|
||||
AMD K6-2/500 999.42 Robert <robert@mrcomputers.net>
|
||||
AMD K6-2/500 999.42 Craig <craig@pop.uky.edu>
|
||||
AMD K6-2/550 3D 1101.00 Jon Berlin <jberlin@worldbank.org>
|
||||
AMD K6-2/550 1101.00 James Yang <jamesy@no-email>
|
||||
AMD K6-2 550 1101.00 Hugh Wilson <hugh.e.wilson@gm.com>
|
||||
|
||||
AMD Duron/600 1205.86 Chad Daelhousen <loonxtall@hotmail.com>
|
||||
AMD Duron/650 1294.34 Levi Ramsey <lramsey@student.umass.edu>
|
||||
AMD Duron/700 1395.92 N. Fabiano <nicola.fabiano@pg.infn.it>
|
||||
AMD Duron/700 1399.19 Stuart Trusty <stuart@linuxlabs.com>
|
||||
|
@ -1272,7 +1297,9 @@ section on Non-Linux Systems.
|
|||
AMD K7/750 748.75 Manuel Moran Vaquero <mmv@geocities.com>
|
||||
AMD Athlon/755 752.03 Mark Steele <msteele@belent.com>
|
||||
* AMD Athlon/500 996.51 Taco IJsselmuiden <taco@wep.tudelft.nl>
|
||||
* AMD K7/700 1196.03 N. Dimpfl <norbert.dimpfl@primusnetz.de>
|
||||
* AMD Athlon/600 1198.04 Carsten <heiming@informatik.uni-kl.de>
|
||||
* AMD Athlon/600 1205.86 Stefan Schroepfer <scr@iis.fhg.de>
|
||||
* AMD Athlon/630 1258.29 Nanagiotis Papadakos <papadako@csd.uoc.gr>
|
||||
* AMD K7 Athlon/650 1294.34 Robbe Bihlmeyer <robbe@orcus.priv.at>
|
||||
* AMD K7/650 1297.61 Travis Brown <tfb999@yahoo.com>
|
||||
|
@ -1283,9 +1310,11 @@ section on Non-Linux Systems.
|
|||
) AMD Athlon/750 1494.22 A Galinovic <thehack@fly.srk.fer.hr>
|
||||
* AMD K7/750 1500.30 W Canaday <rgabill@ameritech.net>
|
||||
* AMD Athlon/800 1605.63 Robert A. Morris <ramorris@yifan.net>
|
||||
* AMD Athlon/1100 2182.35 Stuart Trusty <stuart@linuxlabs.com>
|
||||
</verb>
|
||||
|
||||
<sect1>Normal Alpha systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1379,11 +1408,12 @@ section on Non-Linux Systems.
|
|||
21264/500 DS20 996.15 Wayne Hall <wayne@uga.edu>
|
||||
21264/500 XP1000 996.40 P. Caulfield <patrick@balti.london.sco.com>
|
||||
21264/667 XP1000 1329.59 Lionel Tricon <Lionel.Tricon@compaq.com>
|
||||
21264DP/666 Tsunami 1329.59 Jens Hoefkens <hoefkens@msu.edu>
|
||||
21264DP/666 Tsunami 1329.59 Jens Hoefkens <hoefkens@msu.edu>
|
||||
21264/730 Wildfire 1488.97 Lionel Tricon <Lionel.Tricon@compaq.com>
|
||||
</verb>
|
||||
|
||||
<sect1>Normal Motorola systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1436,6 +1466,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Other Systems: Sparc, PowerPC, Mips, Intel 8088/286 ELKS, IBM
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1522,6 +1553,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Normal Multi CPU systems
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System BogoMips Reporter
|
||||
|
@ -1631,6 +1663,7 @@ section on Non-Linux Systems.
|
|||
</verb>
|
||||
|
||||
<sect1>Non-Linux systems (reference only)
|
||||
|
||||
<p>
|
||||
<verb>
|
||||
System OS BogoMips Reporter
|
||||
|
@ -1725,17 +1758,17 @@ section on Non-Linux Systems.
|
|||
Parnass2 144x PII/400 Myrinet 57684.96 <zumbusch@iam.uni-bonn.de>
|
||||
</verb>
|
||||
|
||||
|
||||
<sect>Signature
|
||||
<p>
|
||||
This next week
|
||||
<htmlurl url="mailto:roderick@clifton.hobby.nl" name="Roderick">, and his
|
||||
sisters <htmlurl url="mailto:isolde@clifton.hobby.nl" name="Isolde"> and
|
||||
<htmlurl url="mailto:daphne@clifton.hobby.nl" name="Daphne"> have
|
||||
autumn vacation. They typically 'have nothing to do,' therefore
|
||||
'must have' their father's PC for playing Sesamestreet and
|
||||
Busytown games. Oh, well, at least I have the PC during the working
|
||||
days, for working.
|
||||
|
||||
<p>The children <htmlurl url="mailto:roderick@clifton.hobby.nl"
|
||||
name="Roderick">, <htmlurl url="mailto:isolde@clifton.hobby.nl"
|
||||
name="Isolde"> and <htmlurl url="mailto:daphne@clifton.hobby.nl"
|
||||
name="Daphne"> are again back to school and baby daycare centre. Sheer
|
||||
bliss, since school is where you learn new things. Isolde comes back
|
||||
home and tell us that "today she learned the word book and tomorrow
|
||||
she will learn the word hat." When I pointed out the word hat the
|
||||
other day, she said: "No, daddy, I don't know the word hat yet,
|
||||
because we have learned the letter aitch yet." Wijsneus.
|
||||
|
||||
Met vriendelijke groeten, Wim 'Dad' van Dorst.
|
||||
<verb>
|
||||
|
|
|
@ -42,7 +42,7 @@ C++ Programming HOW-TO
|
|||
<author>Al Dev (Alavoor Vasudevan)
|
||||
<htmlurl url="mailto:alavoor@yahoo.com"
|
||||
name="alavoor@yahoo.com">
|
||||
<date>v22.0, 05 Nov 2000
|
||||
<date>v23.0, 12 Nov 2000
|
||||
<abstract>
|
||||
This document discusses methods to avoid memory problems in C++ and
|
||||
also will help you to program properly in C++ language.
|
||||
|
@ -477,6 +477,67 @@ For example to convert integer to string do -
|
|||
|
||||
|
||||
|
||||
<chapt change> Rename String class! How??
|
||||
-->
|
||||
<sect> Rename String class! How??
|
||||
<p>
|
||||
If you want to rename the String class, just in case you do not like the name
|
||||
or if there is a conflict with another name class with same name 'String'. You
|
||||
can use this technique, in all the files where you do include String.h, insert
|
||||
these lines:
|
||||
<code>
|
||||
#define String String_somethingelse_which_I_want
|
||||
#include "String.h"
|
||||
#undef String
|
||||
|
||||
// All your code goes here...
|
||||
main()
|
||||
{
|
||||
String_somethingelse_which_I_want aa;
|
||||
|
||||
aa = " some sample string";
|
||||
.......
|
||||
}
|
||||
</code>
|
||||
The pre-processor will replace all literals of String to "String_somethingelse_which_I_want"
|
||||
and immdiately undefines String
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
<chapt change> File Class
|
||||
-->
|
||||
<sect> File Class
|
||||
<p>
|
||||
You would use the File class to manipulate the operating system files.
|
||||
This class is a imitation of Java's File class and will be very useful
|
||||
in C++ programming. Using this File class in C++ you can do
|
||||
if file <bf>exists()</bf> ?,
|
||||
if directory <bf>exists()</bf> ?,
|
||||
file <bf>length()</bf> and other functions.
|
||||
<itemize>
|
||||
<item> C++ File class is at
|
||||
File.h
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/File.h">
|
||||
and File.cpp
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/File.cpp">
|
||||
<p>
|
||||
<item> Java java.io.File class definition <url url="http://java.sun.com/j2se/1.3/docs/api/java/io/File.html">
|
||||
<item> Quick Reference on File Class <url url="http://unicornsrest.org/reference/java/qref11/java.io.File.html">
|
||||
<item> File Class summary <url url="http://www.idi.ntnu.no/~database/SIF8020/java-api/java.io.File.html">
|
||||
</itemize>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
<chapt> C++ Zap (Delete) command <label id="zap">
|
||||
-->
|
||||
<sect> C++ Zap (Delete) command <label id="zap">
|
||||
|
@ -757,10 +818,7 @@ You can find them using the Internet search engines like Yahoo, Lycos, Excite et
|
|||
Visit the following C++ sites :-
|
||||
<itemize>
|
||||
<item>C++ STL basic string class <url url="http://www.sgi.com/Technology/STL/basic_string.html">
|
||||
<item>C++ STL from SGI <url url="http://www.sgi.com/Technology/STL">
|
||||
<item>C++ STL from RPI univ <url url="http://www.cs.rpi.edu/projects/STL/htdocs/stl.html">
|
||||
<item>Lycos C++ STL site <url url="http://dir.lycos.com/Computers/Programming/Languages/C%2B%2B/Class_Libraries/STL">
|
||||
<item>STL for C++ Programmers <url url="http://userwww.econ.hvu.nl/~ammeraal/stlcpp.html">
|
||||
<item> See the section <ref id="stlref" name="STL References">
|
||||
<p>
|
||||
|
||||
<item>C++ Crash-proof site <url url="http://www.troubleshooters.com/codecorn/crashprf.htm">
|
||||
|
@ -916,9 +974,70 @@ Visit following locators which are related to C, C++ -
|
|||
|
||||
|
||||
|
||||
<chapt change> Overview of the STL
|
||||
<chapt> STL References <label id="stlref">
|
||||
-->
|
||||
<sect> Overview of the STL
|
||||
<sect> STL References <label id="stlref">
|
||||
<p>
|
||||
Please visit the following sites for STL -
|
||||
<itemize>
|
||||
<item> Very good intro to iterators
|
||||
<url url="http://www.cs.trinity.edu/~joldham/1321/lectures/iterators/">
|
||||
<item> CMU univ <url url="http://www.cs.cmu.edu/afs/andrew/course/15/129/Cpp/10-STL/">
|
||||
<item> Intro to STL SGI
|
||||
<url url="http://www.sgi.com/Technology/STL/stl_introduction.html">
|
||||
<item> Mumits STL Newbie guide
|
||||
<url url="http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html">
|
||||
Mumit Khan's informative STL introduction is full of examples
|
||||
<url url="http://abel.hive.no/C++/STL/stlnew.html">
|
||||
<item> ObjectSpace examples: ObjectSpace has contributed over 300 examples to the public domain and these are a very good start for beginners.
|
||||
<url url="ftp://butler.hpl.hp.com/stl/examples.zip">
|
||||
<item> Joseph Y. Laurino's STL page.
|
||||
<url url="http://weber.u.washington.edu/~bytewave/bytewave_stl.html">
|
||||
<item> Musser's STL docs and examples. Very nice.
|
||||
<url url="http://www.cs.rpi.edu/~musser/stl.html">
|
||||
<item> STL Newbie home site.
|
||||
<url url="http://www.xraylith.wisc.edu/~khan/software/stl/STL.newbie.html">
|
||||
<item> Marian Corcoran's STL FAQ.
|
||||
<url url="ftp://butler.hpl.hp.com/stl/stl.faq">
|
||||
</itemize>
|
||||
|
||||
STL Tutorial:
|
||||
<itemize>
|
||||
<item> The best doc on tutorial - <url url="http://www.decompile.com/html/tut.html">
|
||||
Mirror: <url url="http://mip.ups-tlse.fr/~grundman/stl-tutorial/tutorial.html">
|
||||
<item> very good - <url url="http://www.yrl.co.uk/~phil/stl/stl.htmlx">
|
||||
<item> C++ Standard Template LibraryAnother great tutorial, by Mark Sebern
|
||||
<url url="http://www.msoe.edu/eecs/cese/resources/stl/index.htm">
|
||||
<item> By Jak Kirman:
|
||||
<url url="http://129.187.112.56/Misc/Computer/stl-tutorial/tutorial_9.html">
|
||||
Mirrors : <url url="http://www.cs.brown.edu/people/jak/proglang/cpp/stltut/tut.html">
|
||||
<url url="http://saturn.math.uaa.alaska.edu/~afjhj/cs403/stl/tutorial.html">
|
||||
<item> Technical University Vienna by Johannes Weidl <url url="http://dnaugler.cs.semo.edu/tutorials/stl">
|
||||
mirror <url url="http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm">
|
||||
<item> Colorful Tutorial <url url="http://www.codeproject.com/cpp/stlintroduction.asp">
|
||||
</itemize>
|
||||
|
||||
Ready-made Components for use with the STL
|
||||
<itemize>
|
||||
<item> STL components Collected by Boris Fomitche
|
||||
<url url="http://www.metabyte.com/~fbp/stl/components.html">
|
||||
</itemize>
|
||||
|
||||
Main STL sites -
|
||||
<itemize>
|
||||
<item>C++ STL from SGI <url url="http://www.sgi.com/Technology/STL">
|
||||
<item>C++ STL from RPI univ <url url="http://www.cs.rpi.edu/projects/STL/htdocs/stl.html">
|
||||
<item>Lycos C++ STL site <url url="http://dir.lycos.com/Computers/Programming/Languages/C%2B%2B/Class_Libraries/STL">
|
||||
<item>STL for C++ Programmers <url url="http://userwww.econ.hvu.nl/~ammeraal/stlcpp.html">
|
||||
<item>C++ STL from halper <url url="http://www.halpernwightsoftware.com/stdlib-scratch/quickref.html">
|
||||
</itemize>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect1> Overview of the STL
|
||||
<p>
|
||||
The STL offers the programmer a number of useful data structures and algorithms. It is made up the following components.
|
||||
|
||||
|
@ -981,12 +1100,6 @@ pair<T1,T2> make_pair(const T1& f, const T2&,s)
|
|||
as well as implementations of operator== and operator < . There is nothing complicated about this template class and you should be
|
||||
able to use it without further guidance. To use it #include the header file pair.h. It crops up in a number of places but particularly
|
||||
when using the set and map classes.
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
-->
|
||||
<sect1> Header Files
|
||||
<p>
|
||||
To use the various bits of the STL you have to #include the appropriate header files. These may differ slightly from compiler to
|
||||
|
@ -1025,7 +1138,52 @@ another option is use <table>
|
|||
<member>a</member>
|
||||
<member>a</member>
|
||||
</simplelist>
|
||||
|
||||
|
||||
<table loc=p>
|
||||
<tabular ca="rll">
|
||||
Line No.<colsep>Country <colsep>Capital <rowsep><hline>
|
||||
1 <colsep>Norway <colsep>Oslo <rowsep>
|
||||
2 <colsep>Japan <colsep>Tokyo <rowsep>
|
||||
3 <colsep>Finland <colsep>Helsinki <rowsep>
|
||||
</tabular>
|
||||
<caption><bf>Some capitals</bf></caption>
|
||||
</table>
|
||||
-->
|
||||
|
||||
<!-- Put a line space after &lowbar below to avoid space between.... -->
|
||||
<table loc=p>
|
||||
<tabular ca="rll">
|
||||
Operation <colsep>Purpose <colsep>Vector <colsep>List <colsep>Set <colsep>Map <rowsep><hline>
|
||||
== <colsep>comparison <colsep>* <colsep>*<colsep>*<colsep>*<rowsep>
|
||||
<<colsep> comparison<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
begin<colsep> iterator<colsep> *<colsep> *<colsep> *<colsep> *<colsep><rowsep>
|
||||
end<colsep> iterator<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
size<colsep> no. of elements<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
empty<colsep> is container empty<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
front<colsep> first element<colsep> *<colsep> * <rowsep>
|
||||
back<colsep> last element<colsep> *<colsep> * <rowsep>
|
||||
&lsqb &rsqb <colsep> element access/modification<colsep> *<colsep> <colsep> <colsep>*<colsep><rowsep>
|
||||
insert<colsep> insert element(s)<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
|
||||
push&lowbar
|
||||
back<colsep> insert new last element<colsep> *<colsep> *<colsep> <rowsep>
|
||||
|
||||
push&lowbar
|
||||
front<colsep> insert new first element<colsep> <colsep>*<colsep> <rowsep>
|
||||
|
||||
erase<colsep> remove element(s)<colsep> *<colsep> *<colsep> *<colsep> *<rowsep>
|
||||
|
||||
pop&lowbar
|
||||
back<colsep> remove last element<colsep> *<colsep> *<colsep> <rowsep>
|
||||
|
||||
pop&lowbar
|
||||
front<colsep> remove last element<colsep> <colsep>*<colsep> <rowsep>
|
||||
</tabular>
|
||||
<caption><bf>Container Class Interface</bf></caption>
|
||||
</table>
|
||||
|
||||
<!--
|
||||
<code>
|
||||
Operation Purpose Vector List Set Map
|
||||
== comparison * * * *
|
||||
|
@ -1044,6 +1202,7 @@ erase remove element(s) * * * *
|
|||
pop_back remove last element * *
|
||||
pop_front remove last element *
|
||||
</code>
|
||||
-->
|
||||
|
||||
If the following discussion leaves something unclear
|
||||
(and it will) you can always write a small test program to investigate how
|
||||
|
@ -1427,7 +1586,7 @@ The comparison operators <= and >= also work.
|
|||
-->
|
||||
<sect1> Iterators and the STL
|
||||
<p>
|
||||
This section to be written
|
||||
See the section <ref id="stlref" name="STL References">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
@ -1436,7 +1595,7 @@ This section to be written
|
|||
-->
|
||||
<sect1> Lists
|
||||
<p>
|
||||
This section to be written
|
||||
See the section <ref id="stlref" name="STL References">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
@ -2051,7 +2210,7 @@ void main()
|
|||
-->
|
||||
<sect1> Maps
|
||||
<p>
|
||||
This section not yet written.
|
||||
See the section <ref id="stlref" name="STL References">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
@ -2060,7 +2219,34 @@ This section not yet written.
|
|||
-->
|
||||
<sect1> STL Algorithms
|
||||
<p>
|
||||
This section not yet written.
|
||||
See the section <ref id="stlref" name="STL References">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
*******************************************
|
||||
|
||||
|
||||
|
||||
|
||||
<chapt change> C++ Utilities
|
||||
-->
|
||||
<sect> C++ Utilities
|
||||
<p>
|
||||
Visit the following sites for C++ Utilities
|
||||
<itemize>
|
||||
<item> C++ Binary File I/O
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/cpp_BinaryFileIO.html">
|
||||
and at <url url="http://aldev.50megs.com/cpphowto/cpp_BinaryFileIO.html" name="mirror site">
|
||||
<p>
|
||||
<item> Portability Guide
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/cpp_PortabilityGuide.html">
|
||||
and at <url url="http://aldev.50megs.com/cpphowto/cpp_PortabilityGuide.html" name="mirror site">
|
||||
<p>
|
||||
<item> Snippets collections of C++ routines
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/cpp_Snippets.html">
|
||||
and at <url url="http://aldev.50megs.com/cpphowto/cpp_Snippets.html" name="mirror site">
|
||||
and at <url url="http://www.strangecreations.com/library/snippets" name="snippets site">
|
||||
</itemize>
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
@ -2203,9 +2389,9 @@ owners.
|
|||
|
||||
|
||||
|
||||
<chapt> Appendix A example_String.cpp <label id="Appendix A">
|
||||
<chapt> Appendix A String Program Files <label id="Appendix A">
|
||||
-->
|
||||
<sect> Appendix A example_String.cpp <label id="Appendix A">
|
||||
<sect> Appendix A String Program Files <label id="Appendix A">
|
||||
<p>
|
||||
You can download all programs as a single tar.gz file from <ref id="Download String">.
|
||||
To get this file, in the web-browser, save this file as 'Text' type.
|
||||
|
@ -2216,6 +2402,10 @@ To get this file, in the web-browser, save this file as 'Text' type.
|
|||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/String.h">
|
||||
<item> String.cpp
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/String.cpp">
|
||||
<item> File.h
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/File.h">
|
||||
<item> File.cpp
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/File.cpp">
|
||||
<item> my_malloc.cpp
|
||||
<url url="http://www.angelfire.com/nv/aldev/cpphowto/my_malloc.cpp">
|
||||
<item> my_malloc.h
|
||||
|
|
|
@ -2,13 +2,12 @@
|
|||
|
||||
<article>
|
||||
|
||||
|
||||
<title>FBB Packet-radio BBS mini-HOWTO
|
||||
<title>FBB packet-radio BBS mini-HOWTO
|
||||
<author>Miroslav "Misko" Skoric, YT7MPB,
|
||||
<tt/m.skoric@eunet.yu/
|
||||
<date>v1.2, 05 October 2000
|
||||
<date>v1.3, 12 November 2000
|
||||
<abstract>
|
||||
<nidx>linux windows nt amateur packet radio</nidx>
|
||||
<nidx>linux!windows nt!amateur!packet!radio!modem!TNC</nidx>
|
||||
This mini-HOWTO covers the installation and use of
|
||||
the most popular amateur packet-radio BBS
|
||||
software FBB. That software works under Linux, DOS
|
||||
|
@ -20,6 +19,7 @@ useful calculations etc. Packet radio is a way of
|
|||
connecting computers via amateur radio stations.
|
||||
</abstract>
|
||||
|
||||
|
||||
<sect>INTRODUCTION
|
||||
|
||||
<p>
|
||||
|
@ -51,12 +51,12 @@ packet radio abilities.
|
|||
with 32 MB of RAM and VGA color graphics, I
|
||||
switched to a Windows version of FBB (so called
|
||||
WinFBB). Author of the software, an radio amateur
|
||||
from France, Jean-Paul F6FBB, made several
|
||||
from France, Jean-Paul F6FBB, has made many
|
||||
versions of WinFBB, including 16 bit variant for
|
||||
Windows 3.x and Windows 9x as well as 32 bit variant for
|
||||
Windows NT. I have run both versions until now
|
||||
(at the moment it is WinFBB v7.00g25 under Windows
|
||||
NT 4.0).
|
||||
Windows NT. I have run both variants until now
|
||||
(at the moment it is 16 bit WinFBB v7.00g25 that runs
|
||||
ok under Windows NT 4.0).
|
||||
|
||||
<p>The main
|
||||
difference between DosFBB and WinFBB is that the
|
||||
|
@ -69,7 +69,9 @@ packet radio message.
|
|||
|
||||
<p>In the mean time, I upgraded my system to the
|
||||
Celeron 400 MHz with 96 MB of RAM and a big hard
|
||||
disk that has enough room to try Linux...
|
||||
disk that has enough room to install Linux and try
|
||||
LinFBB ...
|
||||
|
||||
|
||||
<sect>INSTALLATION
|
||||
|
||||
|
@ -85,125 +87,129 @@ disk that has enough room to try Linux...
|
|||
be ok too (or any other GUI available).
|
||||
|
||||
<p>
|
||||
<item>Download or copy LinFBB (the main ftp site
|
||||
<item>Download or get a copy of LinFBB (the main ftp site
|
||||
is <url url="http://ftp.f6fbb.org/" name=
|
||||
"ftp.f6fbb.org"> but there are many mirror
|
||||
sites too). For example, if you get a file
|
||||
like <tscreen><verb>x700e_full.tgz</verb></tscreen>
|
||||
it means that it is X11 version 7.00e and it
|
||||
contains all you need in tgz archive to install
|
||||
contains in a tgz archive all you need to install
|
||||
the BBS. On the other hand, a name like
|
||||
<tscreen><verb>xd700g_full.tgz</verb></tscreen>
|
||||
means that it is not X11 but daemon version 7.00g
|
||||
and it is also complete to unpack. Further,
|
||||
means that it is <em>not</em> X11 but <em>daemon</em>
|
||||
version 7.00g that is also complete to unpack. Further,
|
||||
<tscreen><verb>x700f01.tgz</verb></tscreen>
|
||||
and <tscreen><verb>x700g.tgz</verb></tscreen>
|
||||
are "upgrades" to any previous "full" package.
|
||||
|
||||
<p>
|
||||
<item>Copy the archive file in <bf>/tmp</bf> directory.
|
||||
<item>Copy the archive file in <filename id="directory">/tmp
|
||||
</filename> directory.
|
||||
|
||||
<p>
|
||||
<item>You have to make a "base" directory where
|
||||
your FBB will be installed. For example you
|
||||
may type: <bf>mkdir /usr/local/fbb</bf> if you want
|
||||
may type: <command>mkdir /usr/local/fbb</command> if you want
|
||||
FBB to be there. You have to be logged as
|
||||
'root' or 'superuser' to install FBB.
|
||||
|
||||
<p>
|
||||
<item>Then, you should locate yourself in that
|
||||
directory: <bf>cd /usr/local/fbb</bf>.
|
||||
directory: <command>cd /usr/local/fbb</command>.
|
||||
|
||||
<p>
|
||||
<item>Now, you should unpack the archive:
|
||||
<bf>tar xvzf /tmp/x700b25.tgz</bf> (<-- use the right
|
||||
<command>tar xvzf /tmp/x700b25.tgz</command> (<-- use the right
|
||||
name of the archive here).
|
||||
|
||||
<p>
|
||||
<item>When you finished unpacking the archive,
|
||||
you may continue installing the software:
|
||||
<bf>./install.sh</bf> is the command for that. The
|
||||
<command>./install.sh</command> is the command for that. The
|
||||
setup will ask you for the 'base' directory
|
||||
where FBB will be installed. If you chose
|
||||
<bf>/usr/local/fbb</bf> again, you will be told that
|
||||
<filename id="directory">/usr/local/fbb</filename> again,
|
||||
you will be told that
|
||||
such directory already exists and all files
|
||||
will be overwritten. It is ok, so you should
|
||||
answer yes. If everything is ok, you should
|
||||
see on the screen that fbb system
|
||||
directories are created. At the beginning
|
||||
of that procedure, program will ask you for
|
||||
bbs's callsign, name of the city, QTH
|
||||
locator, your name etc. That details will
|
||||
become a part of <bf>/usr/local/fbb/init.srv</bf>
|
||||
the BBS's callsign, name of the city, QTH
|
||||
locator, your name etc. These details will
|
||||
become a part of <filename>/usr/local/fbb/init.srv</filename>
|
||||
file.
|
||||
|
||||
<p>
|
||||
<item>Beside that, you MUST check this file
|
||||
<bf>again</bf> manually and fix other details if
|
||||
needed (because installation script does
|
||||
not fix all parts of init.srv).
|
||||
<item>After that, you MUST check this file
|
||||
<bf>again</bf> manually in order to fix some other
|
||||
details needed (because installation script does
|
||||
not fix all parts within that file).
|
||||
|
||||
<p>
|
||||
<item>Well, so far - so good. After you checked
|
||||
<item>Well, so far - so good. After you have checked
|
||||
all configuration files, you may start the
|
||||
software: <bf>./xfbb.sh</bf> (<-- type this within
|
||||
an xterm or something similar). When you
|
||||
start FBB for the first time, it will ask
|
||||
software: <command>./xfbb.sh</command> (<-- type this within
|
||||
an <em>xterm</em> or something similar). When you
|
||||
start FBB for the <em>first</em> time, it will ask
|
||||
you to create some files it needs, so you
|
||||
should answer yes to the questions.
|
||||
should answer "yes" to the questions.
|
||||
|
||||
</itemize>
|
||||
|
||||
<p>
|
||||
<sect1>How to install LinFBB beside WinFBB
|
||||
<sect1>How to install LinFBB in addition to existing WinFBB
|
||||
|
||||
<p>
|
||||
<em>Notice: Folks, you see, at my place, I have a
|
||||
dual-boot system, consisting of Windows NT and
|
||||
Linux (each of them having their own partition(s)
|
||||
and file system). I wanted to have 'independent'
|
||||
operating systems that won't see each other. So I
|
||||
made two NT's partitions as NTFS partitions and
|
||||
operating systems that won't "see" each other. So, I
|
||||
have made two partitions of NTFS type for NT. The
|
||||
rest of the space used Linux as ext2 partitions.
|
||||
Well, first I have installed WinFBB under NT and
|
||||
LinFBB under Linux. Both of them worked, but there
|
||||
was a big "problem": I could not share their
|
||||
system files. You might say: So, what a big deal.
|
||||
But, my FBB's should serve as packet forwarding
|
||||
stations, so it would be very useful for LinFBB
|
||||
to know the point where WinFBB stopped the mail
|
||||
exchange last time (and vice versa). </em>
|
||||
But, my FBB's should serve as a packet-radio forwarding
|
||||
stations (regardless of which one I boot at the
|
||||
moment), so it was really needed for new LinFBB
|
||||
to "know", for example, the position where WinFBB
|
||||
has stopped the mail exchange last time (and vice
|
||||
versa, of course).</em>
|
||||
|
||||
<p>
|
||||
<itemize>
|
||||
|
||||
<item>Well, in order to allow both WinFBB under
|
||||
Windows NT and LinFBB under Linux to use
|
||||
some common files, it is needed to put these
|
||||
Windows NT and LinFBB under Linux to share
|
||||
their system files, it is needed to put those
|
||||
files in a place both operating systems can
|
||||
"see" them. So I do that by re-installing
|
||||
"see". So, I do that by re-installing
|
||||
WinFBB onto a FAT (FAT16) partition that is
|
||||
seen by NT and Linux. The best way to do
|
||||
that is to install a fresh copy of WinFBB on
|
||||
a FAT partition and to copy complete old
|
||||
WinFBB from NTFS partition over the fresh
|
||||
recognized by NT and Linux. The best way to do
|
||||
that is: a) to install a fresh copy of WinFBB on
|
||||
a FAT partition and b) to copy the complete old
|
||||
WinFBB from an NTFS partition over the fresh
|
||||
installation (whenever you are asked to
|
||||
rewrite existing files, you should answer
|
||||
yes).
|
||||
"yes").
|
||||
|
||||
<p>
|
||||
<item>When it is finished, you should have a clone
|
||||
<item>When that is finished, you should have a "clone"
|
||||
of the existing old WinFBB, but this time on
|
||||
the FAT partition that is visible from under
|
||||
Linux. Anyway, you should check if
|
||||
everything is running ok like before.
|
||||
Linux. Anyway, you should check if the "new"
|
||||
installation might be properly run as earliere.
|
||||
|
||||
<p>
|
||||
<item>It is also recommended to check the file
|
||||
<item>I could also recommended you to check the file
|
||||
tree of WinFBB in order to become more
|
||||
familiar with that. The file tree of LinFBB
|
||||
is a bit different so it is advisable to
|
||||
note those details.
|
||||
note various details.
|
||||
|
||||
<p>
|
||||
<item>Some files can't be used as such under both
|
||||
|
@ -212,18 +218,20 @@ exchange last time (and vice versa). </em>
|
|||
be renamed:
|
||||
|
||||
<p>
|
||||
<tscreen><verb>init.srv -> init_w.srv
|
||||
<tscreen><verb>
|
||||
init.srv -> init_w.srv
|
||||
forward.sys -> forw_w.sys
|
||||
port.sys -> port_w.sys
|
||||
protect.sys -> prot_w.sys</verb></tscreen>
|
||||
protect.sys -> prot_w.sys
|
||||
</verb></tscreen>
|
||||
|
||||
<p>
|
||||
FBB is able to recognize those changes.
|
||||
|
||||
<p>
|
||||
<item>Make a backup of the new WinFBB (I make this
|
||||
by copying the whole file structure into
|
||||
another Windows partition that won't be
|
||||
<item>Make a backup of the new WinFBB (I do this
|
||||
by copying the whole FBB file structure into
|
||||
the other Windows partition that won't be
|
||||
shared with Linux, like NTFS one).
|
||||
|
||||
<p>
|
||||
|
@ -233,74 +241,76 @@ exchange last time (and vice versa). </em>
|
|||
|
||||
<p>
|
||||
<item>Mount a shared FAT directory:
|
||||
<bf>mount -t vfat /dev/hda2 /mnt/win</bf>
|
||||
<command>mount -t vfat /dev/hda2 /mnt/win </command>
|
||||
(for example).
|
||||
|
||||
<p>
|
||||
<item>Copy LinFBB archive to <bf>/tmp</bf> directory.
|
||||
<item>Copy LinFBB archive to <filename id="directory">/tmp</filename> directory.
|
||||
|
||||
<p>
|
||||
<item>Locate yourself to a 'base' directory:
|
||||
<bf>cd /usr/local/fbb</bf> (for example).
|
||||
<item>Position yourself to the 'base' directory:
|
||||
<command>cd /usr/local/fbb</command> (for example).
|
||||
|
||||
<p>
|
||||
<item>Unpack the archive: <bf>tar xvzf /tmp/filename</bf>.
|
||||
<item>Unpack the archive: <command>tar xvzf /tmp/filename</command>.
|
||||
|
||||
<p>
|
||||
<item>Start the installation script <bf>./install.sh</bf>
|
||||
and, after asked for the 'base' installation
|
||||
directory, chose <bf>/usr/local/fbb</bf>. Doesn't
|
||||
matter if the program warns you that such
|
||||
directory already exists so existing files
|
||||
will be overwritten (by the way, if you
|
||||
choose a mounted directory shared with NT,
|
||||
many original WinFBB files would be over-
|
||||
written by LinFBB files, so after returning
|
||||
to Windows, WinFBB might not be functional
|
||||
like before).
|
||||
<item>Start the installation script <command>./install.sh</command>
|
||||
and, after being asked for the 'base' installation
|
||||
directory, chose <filename id="directory">/usr/local/fbb
|
||||
</filename>. It doesn't matter if the program
|
||||
warns you that such directory already exists so
|
||||
existing files will be overwritten (by the way,
|
||||
if you chose a mounted directory shared with NT,
|
||||
many original WinFBB files, located there, would be
|
||||
over-written by LinFBB files, so after returning
|
||||
to Windows, its WinFBB might be not functional
|
||||
as before).
|
||||
|
||||
<p>
|
||||
<item>Copy <bf>/usr/local/fbb</bf> to <bf>/mnt/win/fbb</bf> but do
|
||||
*not* over-write existing files with new files
|
||||
<item>Copy <filename>/usr/local/fbb</filename> to
|
||||
<filename>/mnt/win/fbb</filename> but do
|
||||
*not* over-write existing files with the new files
|
||||
having the same names.
|
||||
|
||||
<p>
|
||||
<item>Copy <bf>/mnt/win/fbb/init_w.srv</bf> to a file
|
||||
<bf>/mnt/win/fbb/init_l.srv</bf>
|
||||
<item>Copy <filename>/mnt/win/fbb/init_w.srv</filename> to a file
|
||||
<filename>/mnt/win/fbb/init_l.srv</filename>
|
||||
|
||||
<p>
|
||||
<item>Edit <bf>/mnt/win/fbb/init_l.srv</bf> to what is
|
||||
needed for Linux. You may use the existing
|
||||
file <bf>/mnt/win/fbb/init.srv</bf> as an example.
|
||||
<item>Edit <filename>/mnt/win/fbb/init_l.srv</filename> to that what is
|
||||
needed for Linux and LinFBB. You may use the existing
|
||||
file <filename>/mnt/win/fbb/init.srv</filename> as an example.
|
||||
|
||||
<p>
|
||||
<item>Copy newly edited <bf>/mnt/win/fbb/init_l.srv</bf>
|
||||
over the <bf>/mnt/win/fbb/init.srv</bf> (if you do
|
||||
not do that, maybe you couldn't start LinFBB
|
||||
using <bf>./xfbb.sh</bf> , like me).
|
||||
<item>Copy newly edited <filename>/mnt/win/fbb/init_l.srv</filename>
|
||||
over the <filename>/mnt/win/fbb/init.srv</filename> (if you do
|
||||
not do that, maybe you wouldn't be able to start LinFBB
|
||||
using <command>./xfbb.sh</command>, like me).
|
||||
|
||||
<p>
|
||||
<item>Copy <bf>/mnt/win/fbb/system/port_w.sys</bf> to
|
||||
<bf>/mnt/win/fbb/system/port_l.sys</bf> file.
|
||||
<item>Copy <filename>/mnt/win/fbb/system/port_w.sys</filename> to
|
||||
<filename>/mnt/win/fbb/system/port_l.sys</filename> file.
|
||||
|
||||
<p>
|
||||
<item>Edit <bf>/mnt/win/fbb/system/port_l.sys</bf> to
|
||||
what is needed for Linux. You may use the
|
||||
existing file <bf>/mnt/win/fbb/system/port.sys</bf>
|
||||
<item>Edit <filename>/mnt/win/fbb/system/port_l.sys</filename> to
|
||||
what is needed for Linux and LinFBB. You may use the
|
||||
existing file <filename>/mnt/win/fbb/system/port.sys</filename>
|
||||
as an example.
|
||||
|
||||
<p>
|
||||
<item>Edit <bf>/mnt/win/fbb/xfbb.sh</bf> in order to fix
|
||||
<item>Edit <filename>/mnt/win/fbb/xfbb.sh</filename> in order to fix
|
||||
the right path.
|
||||
|
||||
<p>
|
||||
<item>Ensure that you are in FBB's main directory:
|
||||
<bf>cd /mnt/win/fbb</bf> (for example).
|
||||
<command>cd /mnt/win/fbb</command> (for example).
|
||||
|
||||
<p>
|
||||
<item>Start the script <bf>./xfbb.sh</bf> to run LinFBB.
|
||||
If everything is ok, LinFBB under Linux
|
||||
should run with the same parameters as
|
||||
WinFBB does under Windows.
|
||||
<item>Start the script <command>./xfbb.sh</command> to run LinFBB.
|
||||
If everything is ok, your LinFBB under Linux
|
||||
should run with the same configuration as
|
||||
your "old" WinFBB under Windows.
|
||||
|
||||
</itemize>
|
||||
|
||||
|
@ -321,7 +331,9 @@ haven't made a manual in english yet. I keep
|
|||
trying to translate the original manuals
|
||||
from spanish into english, but it is a hard
|
||||
process. Any good 'spanish-to-english'
|
||||
translator is welcomed to contact me.</em>
|
||||
translator is welcomed to contact me:
|
||||
<htmlurl url="mailto:m.skoric@eunet.yu"
|
||||
name="m.skoric@eunet.yu">.</em>
|
||||
|
||||
<p>
|
||||
Protus offers several interesting features:
|
||||
|
@ -366,12 +378,12 @@ Protus offers several interesting features:
|
|||
for different BBS ports,
|
||||
|
||||
<p>
|
||||
<item>Protus could be activated/deactivated at various
|
||||
intervals of time using CRON.SYS system file,
|
||||
<item>Protus could be activated/deactivated at various
|
||||
intervals of time using <filename>cron.sys</filename> system file,
|
||||
|
||||
<p>
|
||||
<item>Passwords could be remotely managed, using an
|
||||
external server developed by Jose EB5IVB,
|
||||
<item>Passwords could be managed remotely using an
|
||||
external server, developed by Jose EB5IVB,
|
||||
|
||||
<p>
|
||||
<item>...
|
||||
|
@ -379,7 +391,8 @@ Protus offers several interesting features:
|
|||
</itemize>
|
||||
|
||||
<p>
|
||||
Let's see what should be done in order to
|
||||
|
||||
Well, let's see what should be done in order to
|
||||
implement secure access to the FBB packet
|
||||
radio BBS, using Protus type of <em>c_filter</em>:
|
||||
|
||||
|
@ -388,12 +401,12 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
|
||||
<item>Users of Dos/WinFBB versions of Protus
|
||||
already know that it is needed to create a new
|
||||
directory <bf>\FBB\PROTUS</bf> where several *.PRT
|
||||
directory <tt>\FBB\PROTUS</tt> where several *.PRT
|
||||
files should be placed. In addition, the
|
||||
main C_FILT*.DLL files should be copied
|
||||
into <bf>\FBB\BIN</bf> as well as a couple of "system",
|
||||
into <tt>\FBB\BIN</tt> as well as a couple of "system",
|
||||
i.e. config *.PRT files that are going to be
|
||||
within <bf>\FBB\SYSTEM</bf> directory.
|
||||
within <tt>\FBB\SYSTEM</tt> directory.
|
||||
|
||||
<p>
|
||||
<item>After the sysop has copied all files into
|
||||
|
@ -408,7 +421,7 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
information that are sent to users who
|
||||
connect to the BBS). For your information,
|
||||
I usualy don't care much about, because my
|
||||
BBS's are so called "open systems". It means
|
||||
BBS's are, so called, "open systems". It means,
|
||||
they work quite normal for all users in the
|
||||
same way as they worked before using Protus.
|
||||
Only a couple of callsigns have password
|
||||
|
@ -427,7 +440,7 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
system. Users of your system who don't have
|
||||
their password, connect normally as before.
|
||||
Users who's callsigns have password implemented,
|
||||
are prompted for password just after connections.
|
||||
are prompted for password just after their connections.
|
||||
|
||||
<p>
|
||||
<item>The author of Protus, Jesus EB5AGF, has made
|
||||
|
@ -436,7 +449,7 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
of security: a fixed phrase as a password
|
||||
(similar when you connect to the Internet
|
||||
via telephone line, but this way the phrase
|
||||
can be masqueraded within the longer answer);
|
||||
can be masqueraded within some longer answer);
|
||||
a changeable answer to the 5 numbers (just
|
||||
like usual FBB sysop's password); a mode
|
||||
that uses automatic answer from user's client
|
||||
|
@ -451,9 +464,9 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
that DosFBB and WinFBB versions of Protus have
|
||||
been using, so I considered that it was enough
|
||||
just to copy the same directory structure when
|
||||
I wanted to implement Protus under LinFBB. It
|
||||
was wrong. After I have pulled out the
|
||||
remaining hair, the thing started to work, so
|
||||
I started the installation of Protus under LinFBB.
|
||||
It was wrong. After having pulled out the
|
||||
remaining hair, the thing started to work, so,
|
||||
now I am going to tell you what to do.
|
||||
|
||||
<p>
|
||||
|
@ -462,34 +475,34 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
and LinFBB under Linux (see also <tt>Linux+WinNT
|
||||
mini-HOWTO</tt> and <tt>Lilo mini-HOWTO</tt>). That means
|
||||
all Protus stuff has already been installed,
|
||||
except Linux executable of <em>c_filter</em> file. I
|
||||
put that file into <bf>/fbb/bin</bf> directory and,
|
||||
except Linux executable <filename>c_filter</filename> file.
|
||||
I put that file into <tt>/fbb/bin</tt> directory and,
|
||||
after the next restart of LinFBB, I got the
|
||||
info mentioned above: {PROTUS-4.0}. But the
|
||||
password protection was not likely to work.
|
||||
I was told to make a new directory <bf>/var/ax25/fbb/protus</bf>
|
||||
I was told to make a new directory <tt>/var/ax25/fbb/protus</tt>
|
||||
and put *.prt files there. I <em>didn't move</em> *.PRT
|
||||
files from <bf>\FBB\PROTUS</bf> but <em>copied</em> them into
|
||||
files from <tt>\FBB\PROTUS</tt> but <em>copied</em> them into
|
||||
the new location, because I wanted Protus to
|
||||
run further under WinFBB as before. The utility
|
||||
still didn't want to run, unless I copied
|
||||
<em>also</em> *.PRT files from <bf>\FBB\SYSTEM</bf> to the
|
||||
new location (<bf>/var/ax25/fbb/protus</bf>). After I
|
||||
did that, everything became good.
|
||||
still didn't want to run, unless I also copied
|
||||
<em>also</em> *.PRT files from <tt>\FBB\SYSTEM</tt> to the
|
||||
new location (<tt>/var/ax25/fbb/protus</tt>). After I
|
||||
did that, Protus became functional.
|
||||
|
||||
<p>
|
||||
<item>Well, I suppose, the above info would be
|
||||
useful for those of you who intend to run
|
||||
both Windows and Linux on the same machine.
|
||||
For the majority of LinFBB users, it is only
|
||||
important to make <bf>/var/local/fbb/protus</bf>
|
||||
For the majority of LinFBB-only users, it is just
|
||||
important to make <tt>/var/local/fbb/protus</tt>
|
||||
where <em>all</em> *.prt files should be placed. <em>Only</em>
|
||||
c_filter executable should go to <bf>/fbb/bin</bf>
|
||||
<filename>c_filter</filename> executable should go to <tt>/fbb/bin</tt>
|
||||
and that's it.
|
||||
|
||||
<p>
|
||||
<item>About FBB-to-FBB protection: *both* partners
|
||||
have to install Protus and password for the
|
||||
have to install Protus and the password for the
|
||||
forwarding partner's callsign must be the
|
||||
same at *both* sides of the link. The versions
|
||||
of Protus don't need to be the same (neither
|
||||
|
@ -502,13 +515,13 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
|
||||
<p>
|
||||
<item>One of the interesting features of Protus is to
|
||||
log unsuccessful connections. Due to the
|
||||
<em>different</em> locations of *.prt files here, I have
|
||||
separate logs for WinFBB and LinFBB. Those of
|
||||
you who are going to run only one version of
|
||||
FBB, will have <em>one</em> complete log of connection
|
||||
log unsuccessful connections and other errors. Due to the
|
||||
<em>different</em> locations of <filename>*.prt</filename>
|
||||
files here, I have separate logs for WinFBB and LinFBB.
|
||||
Those of you who are going to run only one version of
|
||||
FBB, will have <em>one</em> complete log of all
|
||||
errors, your users make when they try
|
||||
connecting your BBS.
|
||||
connecting your BBS.
|
||||
|
||||
<p>
|
||||
<item>As it was told earlier, if you implemented
|
||||
|
@ -516,23 +529,23 @@ radio BBS, using Protus type of <em>c_filter</em>:
|
|||
users (but not for all of them who connect
|
||||
normally) - your system is considered as
|
||||
an "open" one. It means that will be logged
|
||||
only unsuccessful tries to enter the system
|
||||
by "protected" callsigns. But, if you decided
|
||||
that your BBS can be accessed by <em>only</em> those
|
||||
only these unsuccessful tries to enter the system
|
||||
by "protected" callsigns. But, if you have decided
|
||||
that your BBS is to be accessed by <em>only</em> those
|
||||
callsigns who are protected with Protus, it
|
||||
means that your system is the "closed" one.
|
||||
Then, there is no way a user could enter your
|
||||
FBB unless its callsign has given a password
|
||||
within your Protus. Any unauthorized try to
|
||||
connect your BBS is logged. In addition,
|
||||
means that your system is considered as the "closed" one.
|
||||
Then, there is no way that other users (without passwords
|
||||
given) could enter your FBB. Any unauthorized try to
|
||||
connect your BBS is also logged. In addition,
|
||||
you may decide to have a "guest" access or
|
||||
a "read-only" as default for some ports as
|
||||
well for users who enter the wrong password.
|
||||
a "read-only" as <em>default</em> for some ports and/or
|
||||
for those users who enter the wrong password.
|
||||
Many combinations are possible. You could
|
||||
even password protect your own FBB console!
|
||||
|
||||
</itemize>
|
||||
|
||||
|
||||
<sect>FURTHER INFORMATION
|
||||
|
||||
<p>
|
||||
|
@ -637,4 +650,165 @@ Any comments or suggestions can be mailed to my
|
|||
email address:
|
||||
<htmlurl url="mailto:m.skoric@eunet.yu"
|
||||
name="m.skoric@eunet.yu">.
|
||||
|
||||
<sect1>HOWTO
|
||||
<p>
|
||||
<nidx>disk!information resources!HOWTOs</nidx>
|
||||
These are intended as the primary starting points to
|
||||
get the background information as well as show you how to solve
|
||||
a specific problem.
|
||||
Some relevant HOWTOs are <tt/Bootdisk/, <tt/Installation/, <tt/SCSI/ and <tt/UMSDOS/.
|
||||
The main site for these is the
|
||||
<url url="http://metalab.unc.edu/LDP/"
|
||||
name="LDP archive">
|
||||
at Metalab (formerly known as Sunsite).
|
||||
|
||||
<sect1>Mini-HOWTO
|
||||
<p>
|
||||
<nidx>disk!information resources!mini-HOWTOs</nidx>
|
||||
These are the smaller free text relatives to the HOWTOs.
|
||||
Some relevant mini-HOWTOs are
|
||||
<tt/Backup-With-MSDOS/, <tt/Diskless/, <tt/LILO/, <tt/Large Disk/,
|
||||
<tt/Linux+DOS+Win95+OS2/, <tt/Linux+OS2+DOS/, <tt/Linux+Win95/,
|
||||
<tt/Linux+WinNT/, <tt/Linux+NT-Loader/, <tt/NFS-Root/, <tt/Win95+Win+Linux/,
|
||||
<tt/ZIP Drive/, <tt/FBB packet-radio BBS/.
|
||||
You can find these at the same place as the HOWTOs, usually in a sub directory
|
||||
called <tt/mini/. Note that these are scheduled to be converted into SGML and
|
||||
become proper HOWTOs in the near future.
|
||||
|
||||
<sect1>Local Resources
|
||||
<p>
|
||||
<nidx>disk!information resources!local</nidx>
|
||||
In most distributions of Linux there is a document directory installed,
|
||||
have a look in the
|
||||
<htmlurl url="file:///usr/doc"
|
||||
name="/usr/doc"> directory.
|
||||
where most packages store their main documentation and README files etc.
|
||||
Also you will here find the HOWTO archive (
|
||||
<htmlurl url="file:///usr/doc/HOWTO"
|
||||
name="/usr/doc/HOWTO">)
|
||||
of ready formatted HOWTOs
|
||||
and also the mini-HOWTO archive (
|
||||
<url url="file:///usr/doc/HOWTO/mini"
|
||||
name="/usr/doc/HOWTO/mini">)
|
||||
of plain text documents.
|
||||
|
||||
Many of the configuration files mentioned earlier can be found in the
|
||||
<htmlurl url="file:///etc"
|
||||
name="/etc">
|
||||
directory. In particular you will want to work with the
|
||||
<htmlurl url="file:///etc/fstab"
|
||||
name="/etc/fstab">
|
||||
file that sets up the mounting of partitions
|
||||
and possibly also
|
||||
<htmlurl url="file:///etc/mdtab"
|
||||
name="/etc/mdtab">
|
||||
file that is used for the <tt/md/ system to set up RAID.
|
||||
|
||||
The kernel source in
|
||||
<url url="file:///usr/src/linux"
|
||||
name="/usr/src/linux">
|
||||
is, of course, the ultimate documentation. In other
|
||||
words, <em>use the source, Luke</em>.
|
||||
It should also be pointed out that the kernel comes not only with
|
||||
source code which is even commented (well, partially at least)
|
||||
but also an informative
|
||||
<url url="file:///usr/src/linux/Documentation"
|
||||
name="documentation directory">.
|
||||
If you are about to ask any questions about the kernel you should
|
||||
read this first, it will save you and many others a lot of time
|
||||
and possibly embarrassment.
|
||||
|
||||
Also have a look in your system log file (
|
||||
<htmlurl url="file:///var/log/messages"
|
||||
name="/var/log/messages">)
|
||||
to see what is going on and in particular how the booting went if
|
||||
too much scrolled off your screen. Using <tt>tail -f /var/log/messages</tt>
|
||||
in a separate window or screen will give you a continuous update of what is
|
||||
going on in your system.
|
||||
|
||||
You can also take advantage of the
|
||||
<htmlurl url="file:///proc"
|
||||
name="/proc">
|
||||
file system that is a window into the inner workings of your system.
|
||||
Use <tt/cat/ rather than <tt/more/ to view the files as they are
|
||||
reported as being zero length. Reports are that <tt/less/ works well here.
|
||||
|
||||
<sect1>Web Pages
|
||||
<p>
|
||||
<nidx>disk!information resources!WWW</nidx>
|
||||
<nidx>disk!information resources!web pages</nidx>
|
||||
There is a huge number of informative web pages out there and by their very
|
||||
nature they change quickly so don't be too surprised if these links become
|
||||
quickly outdated.
|
||||
|
||||
A good starting point is of course the
|
||||
<url url="http://www.linuxdoc.org/"
|
||||
name="Linux Documentation Project"> home page,
|
||||
an information central for documentation, project pages and much, much more.
|
||||
|
||||
Please let me know if you have any other leads that can be of interest.
|
||||
|
||||
|
||||
<sect>GETTING HELP
|
||||
|
||||
<p>
|
||||
<nidx>(your index root)!assistance, obtaining</nidx>
|
||||
|
||||
In the end you might find yourself unable to solve your problems and need
|
||||
help from someone else. The most efficient way is either to ask someone
|
||||
local or in your nearest Linux user group, search the web for the nearest
|
||||
one.
|
||||
|
||||
Another possibility is to ask on Usenet News in one of the many, many
|
||||
newsgroups available. The problem is that these have such a high
|
||||
volume and noise (called low signal-to-noise ratio) that your question
|
||||
can easily fall through unanswered.
|
||||
|
||||
No matter where you ask it is important to ask well or you will not be
|
||||
taken seriously. Saying just <it/my disk does not work/ is not going
|
||||
to help you and instead the noise level is increased even further and if
|
||||
you are lucky someone will ask you to clarify.
|
||||
|
||||
Instead describe your problems in some detail that
|
||||
will enable people to help you. The problem could lie somewhere you did
|
||||
not expect. Therefore you are advised to list up the following information
|
||||
on your system:
|
||||
|
||||
<descrip>
|
||||
<tag/Hardware/
|
||||
<itemize>
|
||||
<item>Processor
|
||||
<item>DMA
|
||||
<item>IRQ
|
||||
<item>Chip set (LX, BX etc)
|
||||
<item>Bus (ISA, VESA, PCI etc)
|
||||
<item>Expansion cards used (Disk controllers, video, IO etc)
|
||||
</itemize>
|
||||
|
||||
<tag/Software/
|
||||
<itemize>
|
||||
<item>BIOS (On motherboard and possibly SCSI host adapters)
|
||||
<item>LILO, if used
|
||||
<item>Linux kernel version as well as possible modifications and patches
|
||||
<item>Kernel parameters, if any
|
||||
<item>Software that shows the error (with version number or date)
|
||||
</itemize>
|
||||
|
||||
<tag/Peripherals/
|
||||
<itemize>
|
||||
<item>Type of disk drives with manufacturer name, version and type
|
||||
<item>Other relevant peripherals connected to the same busses
|
||||
</itemize>
|
||||
|
||||
</descrip>
|
||||
|
||||
Remember that booting text is logged to <tt>/var/log/messages</tt> which can
|
||||
answer most of the questions above. Obviously if the drives fail you might not
|
||||
be able to get the log saved to disk but you can at least scroll back up the
|
||||
screen using the <tt/SHIFT/ and <tt/PAGE UP/ keys. It may also be useful to
|
||||
include part of this in your request for help but do not go overboard, keep
|
||||
it <em/brief/ as a complete log file dumped to Usenet News is more than a
|
||||
little annoying.
|
||||
|
||||
</article>
|
||||
|
|
|
@ -43,7 +43,7 @@ LILO, Linux Crash Rescue HOW-TO
|
|||
<author>Al Dev (Alavoor Vasudevan)
|
||||
<htmlurl url="mailto:alavoor@yahoo.com"
|
||||
name="alavoor@yahoo.com">
|
||||
<date>v3.0, 21 Oct 2000
|
||||
<date>v4.0, 12 Nov 2000
|
||||
<abstract>
|
||||
This document discusses methods to recover from Linux system failures.
|
||||
Various reasons for linux system failures can be -
|
||||
|
@ -131,7 +131,8 @@ bash# /sbin/lilo -r /a4
|
|||
<p>
|
||||
If scene 1 and 2 failes, then
|
||||
if you made the boot disk with 'mkbootdisk' (during install or
|
||||
by using 'man mkbootdisk'), boot with it and repair your partitions
|
||||
by using 'man mkbootdisk'), boot with it and repair your partitions.
|
||||
The mkbootdisk is in mkbootdisk*.rpm package, you must install this.
|
||||
<p>
|
||||
<item> <bf>SCENE 4:</bf> If 1, 2 and 3 above fails and you do not have boot disk
|
||||
<p>
|
||||
|
@ -146,6 +147,7 @@ bash# cp /etc/lilo.conf /etc/lilo-original.conf
|
|||
<code>
|
||||
bash# mkbootdisk /dev/fd0
|
||||
</code>
|
||||
The mkbootdisk is in mkbootdisk*.rpm package, you must install this.
|
||||
Make sure you move the /etc/lilo-original.conf back to /etc/lilo.conf!! And
|
||||
then take this floppy and goto scene 3
|
||||
<p>
|
||||
|
|
|
@ -1,37 +1,32 @@
|
|||
<!doctype linuxdoc system>
|
||||
|
||||
<!-- TODO: loader= -->
|
||||
|
||||
<!-- Lilo mini-howto -->
|
||||
|
||||
<article>
|
||||
|
||||
<!-- Title information -->
|
||||
|
||||
<title>Lilo mini-Howto
|
||||
<author>Miroslav Skoric (<tt/m.skoric@eunet.yu/)
|
||||
<date>v3.2, 05 November 2000
|
||||
<title>Lilo mini-HOWTO
|
||||
<author>Miroslav "Misko" Skoric, <tt/m.skoric@eunet.yu/
|
||||
<date>v3.3, 12 November 2000
|
||||
<abstract>
|
||||
<nidx>linux loader windows nt boot</nidx>
|
||||
LILO is the most used <bf/Li/nux <bf/Lo/ader for the x86 flavour of
|
||||
Linux; I'll call it Lilo rather than LILO here because I don't
|
||||
appreciate uppercase. This file describes some typical Lilo
|
||||
installations. It's intended as a supplement to the Lilo User's
|
||||
Guide. I think examples are informative even if your setup isn't much
|
||||
like mine. I hope this saves you trouble. Since Lilo's own
|
||||
appreciate uppercase. This file describes some typical Lilo
|
||||
installations. It's intended as a supplement to the Lilo User's
|
||||
Guide. I think examples are informative even if your setup isn't much
|
||||
like mine. I hope this saves you trouble. Since Lilo's own
|
||||
documentation is very good, who's interested in the details is
|
||||
referred to /usr/doc/lilo*
|
||||
referred to /usr/doc/lilo* (once upon a time said gentlemen like
|
||||
Cameron Spitzer and Alessandro Rubini who have made early versions
|
||||
of this document)
|
||||
|
||||
<p>
|
||||
This version of Lilo mini-HOWTO is based on work of Cameron Spitzer
|
||||
(<tt/cls@truffula.sj.ca.us/) and Alessandro Rubini (<tt/rubini@linux.it/).
|
||||
There is also a contribution from Tony Harris (<tt/tony@nmr.mgh.harvard.edu/)
|
||||
|
||||
</abstract>
|
||||
|
||||
<!-- Table of contents -->
|
||||
<toc>
|
||||
|
||||
<!-- Begin the document -->
|
||||
|
||||
<sect>Introduction
|
||||
|
||||
<p>
|
||||
Although the documentation found in Lilo's sources (the one installed
|
||||
in <tt>/usr/doc/lilo</tt>-version) is very comprehensive, most Linux
|
||||
|
@ -69,40 +64,46 @@ doesn't run anything but Linux, so he can't check
|
|||
nor update them by himself. Needless to say, any feedback is welcome.
|
||||
|
||||
<sect>Background Information and Standard Installation
|
||||
|
||||
<p>
|
||||
When Lilo boots the system, it uses BIOS calls to load the Linux
|
||||
kernel off the disk (IDE drive, floppy or whatever). Therefore, the
|
||||
kernel must live in some place that can be accessed by the bios.
|
||||
|
||||
<p>
|
||||
At boot time, Lilo is not able to read filesystem data, and any
|
||||
pathname you put in <tt>/etc/lilo.conf</tt> is resolved at
|
||||
installation time (when you invoke <em>/sbin/lilo</em>). Installation
|
||||
installation time (when you invoke <command>/sbin/lilo</command>). Installation
|
||||
time is when the program builds the tables that list which sectors are
|
||||
used by the files used to load the operating system. As a consequence,
|
||||
all of these files must live in a partition that can be accessed by
|
||||
the BIOS (the files are usually located in the <tt>/boot</tt>
|
||||
directory, this means that only the root partition of your Linux
|
||||
system needs to be accessed via the BIOS).
|
||||
|
||||
<p>
|
||||
Another consequence of being BIOS-based is that you must reinstall the
|
||||
loader (i.e., you must reinvoke <em>/sbin/lilo</em>) any time you
|
||||
loader (i.e., you must reinvoke <command>/sbin/lilo</command>) any time you
|
||||
modify the Lilo setup. Whenever you recompile your kernel and
|
||||
overwrite your old image you must reinstall Lilo.
|
||||
|
||||
<sect1>Where Should I Install Lilo?
|
||||
|
||||
<p>
|
||||
The <tt/boot=/ directive in <tt>/etc/lilo.conf</tt> tells Lilo where
|
||||
it should place its primary boot loader. In general, you can either
|
||||
specify the master boot record (<tt>/dev/hda</tt>) or the root
|
||||
partition of your Linux installation (is usually is <tt>/dev/hda1</tt>
|
||||
or <tt>/dev/hda2</tt>).
|
||||
|
||||
<p>
|
||||
If you have another operating system installed in your hard drive,
|
||||
you'd better install Lilo to the root partition instead of the MBR. In
|
||||
this case, you must mark the partition as ``bootable'' using the ``a''
|
||||
command of <em>fdisk</em> or the ``b'' command of <em>cfdisk</em>. If
|
||||
you don't overwrite the master boot sector you'll find it easier to
|
||||
uninstall Linux and Lilo if needed.
|
||||
command of <command>fdisk</command> or the ``b'' command of <command>cfdisk
|
||||
</command>. If you don't overwrite the master boot sector you'll find it
|
||||
easier to uninstall Linux and Lilo if needed.
|
||||
|
||||
<p>
|
||||
Of course, you always have a way to avoid some "rules" like above. Well,
|
||||
you may install Lilo to the MBR even if you already have another operating
|
||||
|
@ -111,27 +112,32 @@ first operating system on your machine, then NT's boot loader was placed into
|
|||
the MBR so you were able to boot NT without problems. After you installed
|
||||
Linux and chose to install Lilo to the MBR, Lilo rewrote NT's boot loader.
|
||||
Next time you boot your machine, you won't be able to boot NT. But, there
|
||||
is no problem. You just should edit your /etc/lilo.conf and add a new entry
|
||||
for NT. Next time you re-boot your system, there will be the new added entry
|
||||
for NT under Lilo.
|
||||
is no problem. You should edit your <tt>/etc/lilo.conf</tt> and add a new entry
|
||||
for NT. Next time you re-boot your system, there will be the new added NT entry
|
||||
under Lilo menu.
|
||||
|
||||
<sect1>How Should I Configure my IDE Hard Drives?
|
||||
|
||||
<p>
|
||||
I personally don't use LBA or LARGE settings in the BIOS (but I only
|
||||
run Linux); they are horrible kludges forced on by design deficiencies
|
||||
in the PC world. This requires that the kernel lives in the first 1024
|
||||
cylinders, but this is not a problem as long as you partition your
|
||||
hard drives and keep root small (as you should do anyways).
|
||||
|
||||
<p>
|
||||
If your hard disk already carries another operating system, you won't
|
||||
be able to modify the BIOS settings, or the old system won't work any
|
||||
more. All recent Lilo distribution are able to deal with LBA and LARGE
|
||||
disk settings.
|
||||
|
||||
<p>
|
||||
Note that the "<tt/linear/" keyword in <tt>/etc/lilo.conf</tt> can
|
||||
help in dealing with geometry problems. The keyword instructs Lilo to
|
||||
use linear sector addresses instead of sector/head/cylinder tuples.
|
||||
Conversion to 3D addresses is delayed to run-time, therefore making
|
||||
the setup more immune to geometry problems.
|
||||
|
||||
<p>
|
||||
If you have more than one hard disk and some of them are only used by
|
||||
Linux and are not involved in the boot process, you can tell your BIOS
|
||||
|
@ -140,11 +146,13 @@ Linux will autodetect all the disks in no time. I often switch disks
|
|||
in my computers, but I never touch the BIOS configuration.
|
||||
|
||||
<sect1>How Can I Interact at Boot Time?
|
||||
|
||||
<p>
|
||||
When you see the Lilo prompt, you can hit the <Tab> key to show
|
||||
the list of possible choices. If Lilo is not configured to be
|
||||
interactive, press and hold the <Alt> or <Shift> key
|
||||
before the ``LILO'' message appears.
|
||||
|
||||
<p>
|
||||
If you choose to boot a Linux kernel, you can add command-line
|
||||
arguments after the name of the system you choose. The kernel accepts
|
||||
|
@ -161,14 +169,14 @@ important and worth describing here:
|
|||
installation, and I've been able to boot the system after
|
||||
destroying my root partition by mistake.
|
||||
|
||||
<item><tt/init=/: verson 1.3.43 and newer of the Linux kernel can
|
||||
execute another command instead of <tt>/sbin/init</tt>, as specified
|
||||
on the command line. If you experience bad problems
|
||||
<item><tt/init=/: version 1.3.43 and newer of the Linux kernel can
|
||||
execute another command instead of <command>/sbin/init</command>,
|
||||
as specified on the command line. If you experience bad problems
|
||||
during the boot process, you can access the bare system by
|
||||
specifying <tt>init=/bin/sh</tt> (when you are at the shell
|
||||
prompt you most likely will need to mount your disks: try
|
||||
``<tt>mount -w -n -o remount /; mount -a</tt>'',
|
||||
and remember to ``<tt>umount -a</tt>'' before turning off
|
||||
``<command>mount -w -n -o remount /; mount -a</command>'',
|
||||
and remember to ``<command>umount -a</command>'' before turning off
|
||||
the computer).
|
||||
|
||||
<item>A number: by specifying a number on the kernel command line, you
|
||||
|
@ -180,12 +188,13 @@ important and worth describing here:
|
|||
</itemize>
|
||||
|
||||
<sect1>How Can I Uninstall Lilo?
|
||||
|
||||
<p>
|
||||
When Lilo overwrites a boot sector, it saves a backup copy in
|
||||
<tt>/boot/boot.</tt><em/xxyy/, where <em/xxyy/ are the major and minor
|
||||
numbers of the device, in hex. You can see the major and minor numbers
|
||||
of your disk or partition by running ``<tt>ls -l
|
||||
/dev/</tt><em/device/''. For example, the first sector of
|
||||
of your disk or partition by running ``<command>ls -l
|
||||
/dev/<em>/device</em></command>''. For example, the first sector of
|
||||
<tt>/dev/hda</tt> (major 3, minor 0) will be saved in
|
||||
<tt>/boot/boot.0300</tt>, installing Lilo on <tt>/dev/fd0</tt> creates
|
||||
<tt>/boot/boot.0200</tt> and installing on <tt>/dev/sdb3</tt> (major
|
||||
|
@ -194,32 +203,36 @@ create the file if there is already one so you don't need to care about
|
|||
the backup copy whenever you reinstall Lilo (for example, after
|
||||
recompiling your kernel). The backup copies found in <tt>/boot/</tt>
|
||||
are always the snapshot of the situation before installing any Lilo.
|
||||
|
||||
<p>
|
||||
If you ever need to uninstall Lilo (for example, in the unfortunate
|
||||
case you need to uninstall Linux), you just need to restore the
|
||||
original boot sector. If Lilo is installed in <tt>/dev/hda</tt>, just
|
||||
do ``<tt>dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1</tt>'' (I
|
||||
personally just do ``<tt>cat /boot/boot.0300 > /dev/hda</tt>'', but
|
||||
this is not safe, as this will restore the original partition table as
|
||||
do ``<command>dd if=/boot/boot.0300 of=/dev/hda bs=446 count=1</command>''
|
||||
(I personally just do ``<command>cat /boot/boot.0300 > /dev/hda</command>'',
|
||||
but this is not safe, as this will restore the original partition table as
|
||||
well, which you might have modified in the meanwhile). This command is
|
||||
much easier to run than trying ``<tt>fdisk /mbr</tt>'' from a DOS
|
||||
much easier to run than trying ``<command>fdisk /mbr</command>'' from a DOS
|
||||
shell: it allows you to cleanly remove Linux from a disk without ever
|
||||
booting anything but Linux. After removing Lilo remember to run Linux'
|
||||
<em>fdisk</em> to destroy any Linux partition (DOS' <em>fdisk</em> is
|
||||
unable to remove non-dos partitions).
|
||||
<command>fdisk</command> to destroy any Linux partition (DOS' <command>fdisk
|
||||
</command> is unable to remove non-dos partitions).
|
||||
|
||||
<p>
|
||||
If you installed Lilo on your root partition (e.g., <tt>/dev/hda2</tt>),
|
||||
nothing special needs to be done to uninstall Lilo. Just run Linux'
|
||||
<em>fdisk</em> to remove Linux partitions from the partition
|
||||
<command>fdisk</command> to remove Linux partitions from the partition
|
||||
table. You must also mark the DOS partition as bootable.
|
||||
|
||||
<sect1>How to make a ram disk?
|
||||
|
||||
<p>
|
||||
<em>If you find this part of text hard to read, you may also look for
|
||||
a web page: http://surfer.nmr.mgh.harvard.edu/partition/ramdisk.html
|
||||
<em>Notice: If you find the next section hard to read, you may also look for
|
||||
the web page: http://surfer.nmr.mgh.harvard.edu/partition/ramdisk.html where
|
||||
you would find the original of the contributed section.
|
||||
</em>
|
||||
|
||||
<p>
|
||||
by Tony Harris
|
||||
|
||||
16 Oct 2000
|
||||
|
@ -233,13 +246,13 @@ as a module very early in the boot cycle.
|
|||
There are only two easy steps:
|
||||
|
||||
<itemize>
|
||||
<item>make a ram disk image with <tt/mkinitrd/
|
||||
<item>make a ram disk image with <command>/mkinitrd</command>
|
||||
|
||||
<item>modify lilo.conf to point to the image
|
||||
<item>modify <tt>lilo.conf</tt> to point to the image
|
||||
|
||||
</itemize>
|
||||
|
||||
First, I cd over to <tt//boot/:
|
||||
First, I <command>cd</command> over to <tt//boot/:
|
||||
|
||||
System.map chain.b module-info-2.2.16-3ext3
|
||||
System.map-2.2.16-3 initrd-2.2.16-3.img vmlinux-2.2.16-3
|
||||
|
@ -258,15 +271,17 @@ already a ram disk image for my first kernel (<tt/initrd-2.2.16-3.img/)
|
|||
To make a new image for the second kernel, I type the following (stuff I
|
||||
type is in bold):
|
||||
|
||||
<tt//boot#/ mkinitrd initrd-2.2-16-3ext3.img 2.2.16-3ext3
|
||||
boot#<command>mkinitrd initrd-2.2-16-3ext3.img 2.2.16-3ext3</command>
|
||||
|
||||
<tt/mkinitrd/ is a shellscript that looks at the modules needed by my
|
||||
kernel, then makes an ext2 filesystem containing them.
|
||||
If we look inside the image we see this is the case:
|
||||
|
||||
<tt//boot#/ cat initrd-2.2.16-3ext3.img | gunzip > /tmp/myimage
|
||||
<tt//boot#/ file /tmp/myimage
|
||||
<tt//tmp/myimage: Linux/i386 ext2 filesystem/
|
||||
boot#<command>cat initrd-2.2.16-3ext3.img | gunzip > /tmp/myimage</command>
|
||||
|
||||
boot#<command>file /tmp/myimage</command>
|
||||
|
||||
/tmp/myimage: Linux/i386 ext2 filesystem/
|
||||
|
||||
<p>
|
||||
You do not have to look inside your image. Only making the image and
|
||||
|
@ -276,29 +291,46 @@ image is provided for pedagogic purposes.
|
|||
In order to look inside, I need to mount the image as though it were
|
||||
a filesystem:
|
||||
|
||||
<tt//boot#/ mount /tmp/myimage /mnt/tmp -t ext2 -o loop=/dev/loop3
|
||||
boot#<command>mount /tmp/myimage /mnt/tmp -t ext2 -o loop=/dev/loop3</command>
|
||||
|
||||
boot#<command>ls /mnt/tmp</command>
|
||||
|
||||
<tt//boot#/ ls /mnt/tmp
|
||||
<tt/bin dev etc lib linuxrc/
|
||||
|
||||
<tt//boot#/ find /mnt/tmp
|
||||
boot#<command>find /mnt/tmp</command>
|
||||
|
||||
<tt//mnt/tmp/
|
||||
|
||||
<tt//mnt/tmp/lib/
|
||||
|
||||
<tt//mnt/tmp/lib/aic7xxx.o/
|
||||
|
||||
<tt//mnt/tmp/bin/
|
||||
|
||||
<tt//mnt/tmp/bin/sh/
|
||||
|
||||
<tt//mnt/tmp/bin/insmod/
|
||||
|
||||
<tt//mnt/tmp/etc/
|
||||
|
||||
<tt//mnt/tmp/dev/
|
||||
|
||||
<tt//mnt/tmp/dev/console/
|
||||
|
||||
<tt//mnt/tmp/dev/null/
|
||||
|
||||
<tt//mnt/tmp/dev/ram/
|
||||
|
||||
<tt//mnt/tmp/dev/systty/
|
||||
|
||||
<tt//mnt/tmp/dev/tty1/
|
||||
|
||||
<tt//mnt/tmp/dev/tty2/
|
||||
|
||||
<tt//mnt/tmp/dev/tty3/
|
||||
|
||||
<tt//mnt/tmp/dev/tty4/
|
||||
|
||||
<tt//mnt/tmp/linuxrc/
|
||||
|
||||
The most important part of this ram disk image is (<tt/aic7xxx.o/,
|
||||
|
@ -310,12 +342,16 @@ Here is my entry in (<tt/lilo.conf/ that corresponds to the kernel and
|
|||
image I just created:
|
||||
|
||||
<tt/image=/boot/vmlinuz-2.2.16-3ext3/
|
||||
|
||||
<tt/label=linux.ext3/
|
||||
|
||||
<tt/initrd=/boot/initrd-2.2.16-3ext3.img/
|
||||
|
||||
<tt/read-only/
|
||||
|
||||
<tt/root=/dev/hdb3/
|
||||
|
||||
That's it. Run <tt/lilo/ as root and reboot.
|
||||
That's it. Run <command>/lilo</command> as root and reboot.
|
||||
|
||||
<p>
|
||||
If you have problems, check out the kernel <tt/HOWTO/. There are a
|
||||
|
@ -324,6 +360,7 @@ compiled and living in (<tt//etc/conf.modules/.
|
|||
|
||||
|
||||
<sect>The Simple Configuration
|
||||
|
||||
<p>
|
||||
Most Lilo installations use a configuration file like the
|
||||
following one:
|
||||
|
@ -343,6 +380,7 @@ other = /dev/hda4 # your dos partition, if any
|
|||
table = /dev/hda # the current partition table
|
||||
label = dos # or any non-fancy name
|
||||
</verb>
|
||||
|
||||
<p>
|
||||
You can have multiple ``image'' and ``other'' sections if you want. It's
|
||||
not uncommon to have several kernel images configured in your
|
||||
|
@ -350,6 +388,7 @@ not uncommon to have several kernel images configured in your
|
|||
development.
|
||||
|
||||
<sect1>How to Deal with Big Kernels
|
||||
|
||||
<p>
|
||||
If you compile a ``zImage'' kernel and it is too big to fit in half a
|
||||
megabyte (this is commong with new 2.1 kernels), you should build a
|
||||
|
@ -358,19 +397,8 @@ kernel image nothing special is needed, but you need version 18 or
|
|||
newer of Lilo. If your installation is older, you should upgrade your
|
||||
Lilo package.
|
||||
|
||||
<sect1>Other Sources of Information
|
||||
<p>
|
||||
In addition to the Lilo docs, there are a number of mini-howto's that
|
||||
can be useful for your needs. All of them are called
|
||||
``Linux+<em/foobarOS/'', for some <em/foobarOS/, they deal with
|
||||
coexistence of Linux and other operationg system(s). For example,
|
||||
"NT OS Loader + Linux mini-HOWTO" by Bernd Reichert, describes how to
|
||||
add an entry for Linux under existing Windows NT Loader's menu. Also,
|
||||
``Multiboot-with-LILO'' describes how the various Windows flavours can
|
||||
be made to coexist with Linux. Here we will talk about adding an entry
|
||||
for Windows NT under the existing Lilo menu.
|
||||
|
||||
<sect1>How to Boot Windows NT from Lilo menu
|
||||
|
||||
<p>
|
||||
Here I will give you an order of routines you have to do if you want
|
||||
to have both Linux and NT entries under Lilo menu:
|
||||
|
@ -385,11 +413,12 @@ to have both Linux and NT entries under Lilo menu:
|
|||
would be placed into the MBR (Master Boot Record) of your hard
|
||||
disk. But, there is a possibility for a previous content of
|
||||
the MBR to remain within the MBR (especially any previous
|
||||
Lilo), so I would suggest you (befrre installation of NT) to
|
||||
Lilo), so I would suggest you (before installation of NT) to
|
||||
boot the computer with a DOS floppy diskette having DOS version
|
||||
of FDISK. At the prompt a:\ just enter the command: fdisk /mbr
|
||||
and restart the computer again (without that floppy).
|
||||
|
||||
<p>
|
||||
<item>After you have successfully installed your NT, you will see that
|
||||
it uses the whole hard disk or a specific partition of the hard
|
||||
disk (depending on what you decided during the setup process).
|
||||
|
@ -418,6 +447,7 @@ to have both Linux and NT entries under Lilo menu:
|
|||
NT in order to check the new situation: you may use Windows
|
||||
Explorer or Disk Administrator for that.
|
||||
|
||||
<p>
|
||||
<item>So far so good. Next step is to install your Linux. Case you
|
||||
are familiar with RedHat distribution (I hope with other distros
|
||||
is the same or similar), you start by putting your installation
|
||||
|
@ -433,6 +463,7 @@ to have both Linux and NT entries under Lilo menu:
|
|||
Linux as Custom over the existing linux partitions). Lilo should
|
||||
go to the MBR.
|
||||
|
||||
<p>
|
||||
<item>After it looks that Linux installation is finished, you are going
|
||||
to re-start the computer and there there you will only see Lilo
|
||||
with one Linux entry to boot (or maybe more than one Linux
|
||||
|
@ -450,6 +481,7 @@ to have both Linux and NT entries under Lilo menu:
|
|||
|
||||
|
||||
<sect>Installing <tt/hdc/ to Boot as <tt/hda/ and Using <tt>bios=</tt>
|
||||
|
||||
<p>
|
||||
Lilo allows to map the kernel image from one disk and instruct the
|
||||
BIOS to retrieve it from another disk. For example, it's common for me
|
||||
|
@ -458,6 +490,7 @@ secondary controller) and boot it as a standalong system on the primary
|
|||
IDE controller of another computer. I copied the installation floppy
|
||||
to a tiny partition, so I can run <em>chroot</em> in a virtual
|
||||
console to install <tt/hdc/ while I use the system to do something else.
|
||||
|
||||
<p>
|
||||
The <em>lilo.conf</em> file I use to install Lilo looks like:
|
||||
|
||||
|
@ -474,18 +507,21 @@ image = /boot/vmlinux # this is on /dev/hdc1
|
|||
label = Linux
|
||||
read-only
|
||||
</verb>
|
||||
|
||||
<p>
|
||||
This configuration file must be read by a Lilo running <bf>off
|
||||
/dev/hdc1</bf>. The Lilo maps that get written the boot sector
|
||||
(<tt>/dev/hdc</tt>) must refer to the files in <tt>/boot</tt>
|
||||
(currently installed as hdc); such files will be accessed under hda
|
||||
when this disk will be booted as a standalone system.
|
||||
|
||||
<p>
|
||||
I call this configuration file <tt>/mnt/etc/lilo.conf.hdc</tt>
|
||||
(<tt>/mnt</tt> is where hdc is mounted during the installation. I
|
||||
install Lilo by invoking ``<tt>cd /mnt; chroot . sbin/lilo -C
|
||||
/etc/lilo.conf.hdc</tt>''. Refer to the manual page for
|
||||
<em>chroot</em> if this looks magic.
|
||||
|
||||
<p>
|
||||
The ``<tt>bios=</tt>'' directive in <tt>lilo.conf</tt> is used to tell
|
||||
Lilo what the BIOS thinks of your devices. BIOS calls identify floppy
|
||||
|
@ -494,6 +530,7 @@ drives, 0x80 and the following numbers select hard disks (old BIOSes
|
|||
can only access two disks). The meaning of ``<tt>bios = 0x80</tt> in
|
||||
the previous sample file is therefore ``use 0x80 in your BIOS calls
|
||||
for <tt>/dev/hdc</tt>''.
|
||||
|
||||
<p>
|
||||
This Lilo directive can be handy in other situations, for example when
|
||||
your BIOS is able to boot from SCSI disks instead of IDE ones. When
|
||||
|
@ -501,6 +538,7 @@ both IDE and SCSI devices are there, Lilo can't tell whether 0x80 will
|
|||
refer to one or the other because the user is able to choose it in the
|
||||
BIOS configuration menus, and the BIOS can't be accessed while Linux
|
||||
is running.
|
||||
|
||||
<p>
|
||||
By default, Lilo assumes that IDE drives are mapped first by the BIOS,
|
||||
but this can be overridden by using instructions like these in
|
||||
|
@ -512,15 +550,18 @@ disk = /dev/sda
|
|||
</verb>
|
||||
|
||||
<sect>Using Lilo When the BIOS Can't See the Root Partition
|
||||
|
||||
<p>
|
||||
I have two IDE drives, and a SCSI drive. The SCSI drive can't be seen
|
||||
from BIOS. The Linux Loader, Lilo, uses BIOS calls and can only see
|
||||
drives that BIOS can see. My stupid AMI BIOS will only boot from "A:"
|
||||
or "C:" My root file system is on a partition on the SCSI drive.
|
||||
|
||||
<p>
|
||||
The solution consists in storing the kernel, map file, and chain
|
||||
loader in a Linux partition on the first IDE. Notice that it is not
|
||||
necessary to keep your kernel on your root partition.
|
||||
|
||||
<p>
|
||||
The second partition on my first IDE (<tt>/dev/hda2</tt>, the Linux
|
||||
partition used to boot the system) is mounted on <tt>/u2</tt>. Here
|
||||
|
@ -566,30 +607,38 @@ other = /dev/hda1
|
|||
alias = m
|
||||
</verb>
|
||||
|
||||
<sect>Accessing Huge Disks When the BIOS Can't
|
||||
<sect>Accessing Huge Disks When the BIOS Can't
|
||||
|
||||
<p>
|
||||
Notice: 1GB is "Huge"? Well, once upon a time...
|
||||
|
||||
<p>
|
||||
The system in my office has a 1GB IDE drive. The BIOS can only see
|
||||
the first 504 MB of the IDE. (Where MB means 2**10 bytes, not 10**6
|
||||
bytes.) So I have MS-DOS on a 350 MB partition <tt>/dev/hda1</tt> and
|
||||
my Linux root on a 120 MB partition <tt>/dev/hda2</tt>.
|
||||
|
||||
<p>
|
||||
MS-DOS was unable to install itself correctly when the drive was
|
||||
fresh. Novell DOS 7 had the same problem. Luckily for me, "Options
|
||||
by IBM" forgot to put the "OnTrack" diskette in the box with the
|
||||
drive. The drive was supposed to come with a product called "OnTrack
|
||||
Disk Manager." If you only have MSDOS, I guess you have to use it.
|
||||
|
||||
<p>
|
||||
So I made a partition table with Linux' fdisk. MSDOS-6.2 refused to
|
||||
install itself in <tt>/dev/hda1</tt>. It said something like ``this
|
||||
release of MS-DOS is for new installations. Your computer already has
|
||||
MS-DOS so you need to get an upgrade release from your dealer.''
|
||||
Actually, the disk was brand new.
|
||||
|
||||
<p>
|
||||
What a crock! So I ran Linux' fdisk again and deleted partition 1
|
||||
from the table. This satisfied MS-DOS 6.2 which proceeded to create
|
||||
the exact same partition 1 I had just deleted and installed itself.
|
||||
MS-DOS 6.2 wrote its Master Boot Record on the drive, but it couldn't
|
||||
boot.
|
||||
|
||||
<p>
|
||||
Luckily I had a Slackware kernel on floppy (made by the Slackware
|
||||
installation program "setup"), so I booted Linux and wrote Lilo over
|
||||
|
@ -619,12 +668,14 @@ other = /dev/hda1
|
|||
table = /dev/hda
|
||||
loader = /boot/chain.b
|
||||
</verb>
|
||||
|
||||
<p>
|
||||
After I installed these systems, I verified that the partition
|
||||
containing the zImage, boot.b, map, chain.b, and message files can use
|
||||
an msdos file system, as long as it is not "stackered" or
|
||||
"doublespaced." So I could have made the DOS partition on
|
||||
<tt>/dev/hda1</tt> 500 MB.
|
||||
|
||||
<p>
|
||||
I have also learned that "OnTrack" would have written a partition
|
||||
table starting a few dozen bytes into the drive, instead of at the
|
||||
|
@ -636,6 +687,7 @@ me Linux is broken because Linux doesn't use BIOS. I gave their
|
|||
diskette away.
|
||||
|
||||
<sect>Booting from a Rescue Floppy
|
||||
|
||||
<p>
|
||||
Next, I installed Windows-95 on my office system. It blew away my nice
|
||||
Lilo MBR, but it left my Linux partitions alone. Kernels take a long
|
||||
|
@ -651,10 +703,12 @@ I made the lilo floppy like so:
|
|||
lilo -C /etc/lilo.flop # install Lilo and the map on the diskette.
|
||||
umount /mnt
|
||||
</verb>
|
||||
|
||||
<p>
|
||||
Notice that the diskette <bf>must be mounted when you run the
|
||||
installer</bf> so that Lilo can write its map file properly.
|
||||
<P>
|
||||
|
||||
<p>
|
||||
This file is /etc/lilo.flop. It's almost the same as the last one:
|
||||
|
||||
<verb>
|
||||
|
@ -681,6 +735,7 @@ other = /dev/hda1
|
|||
table = /dev/hda
|
||||
loader = /mnt/chain.b
|
||||
</verb>
|
||||
|
||||
<p>
|
||||
Finally, I needed MS-DOS 6.2 on my office system, but I didn't
|
||||
want to touch the first drive. I added a SCSI controller and
|
||||
|
@ -695,7 +750,118 @@ other = /dev/sda1
|
|||
table = /dev/sda
|
||||
loader = /boot/any_d.b
|
||||
</verb>
|
||||
|
||||
With this modification MSDOS-6.2 runs, and it thinks it is on C: and
|
||||
Windows-95 is on D:.
|
||||
|
||||
<sect>Further Information
|
||||
|
||||
<p>
|
||||
<sect1>Copyright
|
||||
<p>
|
||||
<em>Copyright is a source of much and continuous
|
||||
debate on the LDP mailing list. For more in depth
|
||||
information please consult the Manifesto at the
|
||||
</em> <url url="http://www.LinuxDoc.org/"
|
||||
name="LinuxDoc"> site.
|
||||
<em>The purpose of having a license is to allow
|
||||
appropriate distribution. You can use any license
|
||||
that meets the Manifesto. What follows is a
|
||||
boilerplatte license.
|
||||
</em>
|
||||
<p>
|
||||
Copyright (c) 2000 by Miroslav "Misko" Skoric, YT7MPB.
|
||||
<p>
|
||||
Please freely copy and distribute (sell or give
|
||||
away) this document in any format. It is
|
||||
requested that corrections and/or comments be
|
||||
forwarded to the document maintainer. You may
|
||||
create a derivative work and distribute it
|
||||
provided that you:
|
||||
|
||||
<itemize>
|
||||
<item>
|
||||
Send your derivative work (in the most suitable
|
||||
format such as sgml) to the LDP (Linux
|
||||
Documentation Project) or the like for posting
|
||||
on the Internet. If not the LDP, then let the LDP
|
||||
know where it is available.
|
||||
<item>
|
||||
License the derivative work with this same
|
||||
license or use GPL. Include a copyright notice
|
||||
and at least a pointer to the license used.
|
||||
<item>
|
||||
Give due credit to previous authors and major
|
||||
contributors.
|
||||
</itemize>
|
||||
|
||||
<p>
|
||||
If you're considering making a derived work other
|
||||
than a translation, it's requested that you
|
||||
discuss your plans with the current maintainer.
|
||||
|
||||
<sect1>Disclaimer
|
||||
<p>
|
||||
|
||||
Use the information in this document at your own
|
||||
risk. I disavow any potential liability of this
|
||||
document. Use of the concepts, examples, and/or
|
||||
other content of this document is entirely at
|
||||
your own risk.
|
||||
|
||||
All copyrights are owned by their owners, unless
|
||||
specifically noted otherwise. Use of a term in
|
||||
this document should not be regarded as
|
||||
affecting the validity of any trademark or service
|
||||
mark.
|
||||
|
||||
Naming of particular products or brands should not
|
||||
be seen as endorsements.
|
||||
|
||||
You are strongly recommended to take a backup of
|
||||
your system before major installation and backups
|
||||
at regular intervals.
|
||||
|
||||
<sect1>Other Sources of Information
|
||||
|
||||
<p>
|
||||
In addition to the Lilo docs, there are a number
|
||||
of mini-howto's that can be useful for your needs.
|
||||
All of them are called ``Linux+<em/foobarOS/'', for
|
||||
some <em/foobarOS/, they deal with coexistence of
|
||||
Linux and other operationg system(s). For example,
|
||||
"NT OS Loader + Linux mini-HOWTO" by Bernd Reichert,
|
||||
describes how to add an entry for Linux under existing
|
||||
Windows NT Loader's menu. Next, you have "Linux+WindowsNT
|
||||
mini-HOWTO" by myself, covering how to add an entry for NT
|
||||
under existing Linux Lilo menu (more detailed than here).
|
||||
Also, "Multiboot-with-LILO" describes how the various
|
||||
Windows flavours can be made to coexist with Linux.
|
||||
|
||||
<em>This mini-HOWTO would be improved from time
|
||||
to time. If you think that the HOWTO on your
|
||||
Linux installation CD is some out-of-date, you
|
||||
may check for newest release on the Internet. It
|
||||
could be found within the main <url
|
||||
url="http://www.linuxdoc.org/"
|
||||
name="Linux Documentation Project">
|
||||
homepage.
|
||||
</em>
|
||||
|
||||
<sect1>Credits
|
||||
|
||||
<p>
|
||||
<em>This version of mini-HOWTO can thanks to:</em>
|
||||
|
||||
<tscreen><verb>
|
||||
Cameron Spitzer (<tt/cls@truffula.sj.ca.us/)
|
||||
Alessandro Rubini (<tt/rubini@linux.it/)
|
||||
Tony Harris (<tt/tony@nmr.mgh.harvard.edu/)
|
||||
</verb></tscreen>
|
||||
|
||||
Any comments or suggestions can be mailed to my
|
||||
email address:
|
||||
<htmlurl url="mailto:m.skoric@eunet.yu"
|
||||
name="m.skoric@eunet.yu">.
|
||||
|
||||
</article>
|
||||
|
|
|
@ -2,12 +2,11 @@
|
|||
|
||||
<article>
|
||||
|
||||
|
||||
<title>Linux+WindowsNT mini-HOWTO
|
||||
<author>Miroslav Skoric, <tt/m.skoric@eunet.yu/
|
||||
<date>v2.3, 05 November 2000
|
||||
<date>v2.4, 12 November 2000
|
||||
<abstract>
|
||||
<nidx>windows nt</nidx>
|
||||
<nidx>linux loader windows nt boot</nidx>
|
||||
This mini-HOWTO covers some ways on how to install both Linux
|
||||
and Windows NT on the same computer and how to boot either of
|
||||
them from within LILO menu. There is also another mini-HOWTO
|
||||
|
@ -15,6 +14,7 @@ them from within LILO menu. There is also another mini-HOWTO
|
|||
within NT Loader menu.
|
||||
</abstract>
|
||||
|
||||
|
||||
<sect>INTRODUCTION
|
||||
|
||||
<p>
|
||||
|
@ -60,6 +60,7 @@ Linux. We'll see how to do that and how to use <bf/LILO/ (<bf/Li/nux
|
|||
we'll see the procedure that Bill Wohler, the previous maintainer of
|
||||
this mini-HOWTO, has been using:
|
||||
|
||||
|
||||
<sect>HOW TO INSTALL: LINUX <em>FIRST</em>, WINDOWS NT <em>AFTER</em>
|
||||
|
||||
<p>
|
||||
|
@ -87,11 +88,13 @@ this mini-HOWTO, has been using:
|
|||
<p>
|
||||
5. Add NT stanza to /etc/lilo.conf, e.g.:
|
||||
|
||||
<tt>other=/dev/sda1
|
||||
<verb><tt>
|
||||
other=/dev/sda1
|
||||
|
||||
label=NT
|
||||
|
||||
table=/dev/sda</tt>
|
||||
table=/dev/sda
|
||||
</tt><verb>
|
||||
|
||||
and run lilo. If lilo complains about this (I forget the message),
|
||||
add the "linear" flag to /etc/lilo.conf near the "compact" keyword.
|
||||
|
@ -138,9 +141,9 @@ Partition 1 does not end on cylinder boundary:
|
|||
previously. Clear and restore the MBR (but not the signature) with:
|
||||
|
||||
<p>
|
||||
<bf>dd if=/dev/zero of=/dev/sda bs=512 count=1
|
||||
dd if=/dev/zero of=/dev/sda bs=512 count=1
|
||||
|
||||
dd if=/dev/fd0 of=/dev/sda bs=510 count=1</bf>
|
||||
dd if=/dev/fd0 of=/dev/sda bs=510 count=1
|
||||
|
||||
<p>
|
||||
8. Install the rest of Linux. Easy, huh?
|
||||
|
@ -150,11 +153,11 @@ Partition 1 does not end on cylinder boundary:
|
|||
|
||||
<itemize>
|
||||
|
||||
<item><bf>dd if=/dev/zero of=/dev/sda bs=446 count=1</bf> (in Linux) or perform
|
||||
<item>dd if=/dev/zero of=/dev/sda bs=446 count=1 (in Linux) or perform
|
||||
a low-level format with the SCSI utilities. I've heard that a
|
||||
low-level format of an IDE disk is fatal, so don't do it.
|
||||
|
||||
<item><bf>fdisk /mbr</bf> (you've obviously already created a DOS boot
|
||||
<item>fdisk /mbr (you've obviously already created a DOS boot
|
||||
disk that contains fdisk).
|
||||
|
||||
<item>delete NT partition and create it again in NT install.
|
||||
|
@ -304,37 +307,28 @@ Partition 1 does not end on cylinder boundary:
|
|||
<item>My added NT entry is:
|
||||
|
||||
<p>
|
||||
<tt>
|
||||
<verb><tt>
|
||||
other=/dev/hda1
|
||||
|
||||
label=nt
|
||||
</tt></verb>
|
||||
|
||||
<p>
|
||||
So, the whole /etc/lilo.conf looks like this:
|
||||
|
||||
<p>
|
||||
<verb><tt>
|
||||
boot=/dev/hda
|
||||
|
||||
timeout=50
|
||||
|
||||
prompt
|
||||
|
||||
default=linux
|
||||
|
||||
vga=normal
|
||||
|
||||
read-only
|
||||
|
||||
image=/boot/vmlinuz-2.2.12-20
|
||||
|
||||
label=linux
|
||||
|
||||
root=/dev/hda3
|
||||
|
||||
other=/dev/hda1
|
||||
|
||||
label=nt
|
||||
</tt>
|
||||
</tt></verb>
|
||||
|
||||
<p>
|
||||
<item>Some more explanations regarding details from my <tt>/etc/lilo.conf</tt>
|
||||
|
@ -491,49 +485,35 @@ process shouldn't change too much, if any.
|
|||
<item>My added NT entry is:
|
||||
|
||||
<p>
|
||||
<verb><tt>
|
||||
other=/dev/sda1
|
||||
|
||||
label=nt
|
||||
</tt></verb>
|
||||
|
||||
<p>
|
||||
So, the whole /etc/lilo.conf looks like this:
|
||||
|
||||
<p> so, the whole /etc/lilo.conf looks like this:
|
||||
|
||||
|
||||
<p>
|
||||
<verb><tt>
|
||||
boot=/dev/sda
|
||||
|
||||
map=/boot/map
|
||||
|
||||
install=/boot/boot.b
|
||||
|
||||
prompt
|
||||
|
||||
timeout=50
|
||||
|
||||
default=linux
|
||||
|
||||
image=/boot/vmlinuz-2.2.12-20smp
|
||||
|
||||
label=linux-mp
|
||||
|
||||
initrd=/boot/initrd-2.2.12-20smp.img
|
||||
|
||||
read-only
|
||||
|
||||
root=/dev/sda6
|
||||
|
||||
image=/boot/vmlinuz-2.2.12-20
|
||||
|
||||
label=linux-up
|
||||
|
||||
initrd=/boot/initrd-2.2.12-20.img
|
||||
|
||||
read-only
|
||||
|
||||
root=/dev/sda6
|
||||
|
||||
other=/dev/hda1
|
||||
|
||||
label=nt
|
||||
</tt></verb>
|
||||
|
||||
<p>
|
||||
<item>Some more explanation, regarding details from my <tt>/etc/lilo.conf</tt>
|
||||
|
@ -602,6 +582,7 @@ process shouldn't change too much, if any.
|
|||
|
||||
</itemize>
|
||||
|
||||
|
||||
<sect>FURTHER INFORMATION
|
||||
|
||||
<p>
|
||||
|
@ -611,8 +592,7 @@ process shouldn't change too much, if any.
|
|||
LDP mailing list. For more in depth information please consult
|
||||
the Manifesto at the </em>
|
||||
<url url="http://www.LinuxDoc.org/"
|
||||
name="LinuxDoc">
|
||||
site.
|
||||
name="LinuxDoc"> site.
|
||||
<em>
|
||||
The purpose of having a license is to allow appropriate distribution.
|
||||
You can use any license that meets the Manifesto.
|
||||
|
@ -643,8 +623,6 @@ Give due credit to previous authors and major contributors.
|
|||
If you're considering making a derived work other than a translation,
|
||||
it's requested that you discuss your plans with the current maintainer.
|
||||
|
||||
|
||||
|
||||
<sect1>Disclaimer
|
||||
<p>
|
||||
|
||||
|
@ -662,20 +640,21 @@ Naming of particular products or brands should not be seen as endorsements.
|
|||
You are strongly recommended to take a backup of your system before
|
||||
major installation and backups at regular intervals.
|
||||
|
||||
|
||||
<sect1>News
|
||||
|
||||
<p>
|
||||
This is the second release featuring more samples and an improved structure.
|
||||
Beside that, this version of Linux+WinNT mini-HOWTO is going to offer you
|
||||
another procedure to install both Linux and NT on your computer. And doing
|
||||
that on both IDE and SCSI disks.
|
||||
This is not the first release of this mini-HOWTO. I
|
||||
hope to improve it whenever possible.
|
||||
Beside that, there are other documents that may help you to
|
||||
install more than one operating system on the same computer.
|
||||
You may look for them at the same location where you get
|
||||
Linux+WindowsNT mini-HOWTO.
|
||||
|
||||
<em>This mini-HOWTO would be improved from time to time. If you think
|
||||
that the HOWTO on your Linux installation CD is some out-of-date, you
|
||||
may check for newest release on the Internet. It could be found within
|
||||
the main <url url="http://www.linuxdoc.org/"
|
||||
name="Linux Documentation Project">
|
||||
name="Linux Documentation Project">
|
||||
homepage.
|
||||
</em>
|
||||
|
||||
|
@ -694,7 +673,6 @@ Any comments or suggestions can be mailed to my email address:
|
|||
<htmlurl url="mailto:m.skoric@eunet.yu"
|
||||
name="m.skoric@eunet.yu">.
|
||||
|
||||
|
||||
<sect1>HOWTO
|
||||
<p>
|
||||
<nidx>disk!information resources!HOWTOs</nidx>
|
||||
|
@ -778,7 +756,6 @@ file system that is a window into the inner workings of your system.
|
|||
Use <tt/cat/ rather than <tt/more/ to view the files as they are
|
||||
reported as being zero length. Reports are that <tt/less/ works well here.
|
||||
|
||||
|
||||
<sect1>Web Pages
|
||||
<p>
|
||||
<nidx>disk!information resources!WWW</nidx>
|
||||
|
@ -856,6 +833,4 @@ include part of this in your request for help but do not go overboard, keep
|
|||
it <em/brief/ as a complete log file dumped to Usenet News is more than a
|
||||
little annoying.
|
||||
|
||||
|
||||
|
||||
</article>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
<title>Linux/MIPS HOWTO
|
||||
<author>Ralf Bächle, <tt/ralf@gnu.org/
|
||||
<date>November 8, 2000
|
||||
<date>November 12, 2000
|
||||
<abstract>
|
||||
This FAQ describes the MIPS port of the Linux operating system, common
|
||||
problems and their solutions, availability and more. It also tries to
|
||||
|
@ -576,6 +576,9 @@ find information that actually should be covered elsewhere.
|
|||
This server covers most of Linux/MIPS. It's somewhat SGI-centric, but since
|
||||
Linux/MIPS tries to be the same on every platform, most of its information
|
||||
is of interest to all users.
|
||||
<tag><url url="http://www.linux-mips.org"><p>
|
||||
Quite new site which one day will hopefully become the main Linux/MIPS
|
||||
site.
|
||||
<tag><url url="http://lena.fnet.fr"><p>
|
||||
This server is currently pretty outdated. It's included here mostly for
|
||||
completeness.
|
||||
|
|
|
@ -42,7 +42,7 @@ Covers PostgreSQL Version 6.5.3
|
|||
<author>Al Dev (Alavoor Vasudevan)
|
||||
<htmlurl url="mailto:alavoor@yahoo.com"
|
||||
name="alavoor@yahoo.com">
|
||||
<date>v36.0, 24 Oct 2000
|
||||
<date>v37.0, 12 Nov 2000
|
||||
<abstract>
|
||||
This document is a "practical guide" to very quickly setup a SQL Database
|
||||
engine and
|
||||
|
@ -300,7 +300,7 @@ and not even TIME was existing!! Baby universe was born during big bang and star
|
|||
expanding and kept growing. Even today our universe is still expanding!!
|
||||
A person from another universe by name <bf>'Brahma'</bf> created
|
||||
this universe you are currently living in.
|
||||
<it><bf>Knowledge is the MOTHER of this universe!!</it></bf>
|
||||
<it><bf>Knowledge is the MOTHER of this universe!!</bf></it>
|
||||
'Brahma' loved on 'Mother knowledge' before the baby universe in which
|
||||
you are living was born!!
|
||||
It is a deal similar to how you were born!
|
||||
|
@ -513,7 +513,8 @@ The white paper on PostgreSQL is at
|
|||
<p>
|
||||
PostgreSQL defeated Oracle 8 (and 8i), IBM DB2, MS SQL server, Sybase, Interbase
|
||||
and MySQL in standard benchmark tests in performance, speed, scalability and reliability!
|
||||
Read the benchmarks at <url url="http://www.greatbridge.com/news/p_081420001.html">
|
||||
Read the benchmarks at <url url="http://www.aldev.8m.com"> or
|
||||
at <url url="http://aldev.webjump.com">
|
||||
<!--
|
||||
*******************************************
|
||||
************ End of Section ***************
|
||||
|
|
Loading…
Reference in New Issue