95 lines
5.1 KiB
Plaintext
95 lines
5.1 KiB
Plaintext
|
||
|
||
|
||
UNIX CONVERSIONS
|
||
(By David Johnson)
|
||
-----------------
|
||
Welcome to the second issue of ModemNews featuring UNIX
|
||
CONVERSIONS. In the last issue we discussed the Unix "kernel" and
|
||
related it to the DOS operating system (if you generalize a lot!)
|
||
Also we talked a little about the size differences between UNIX
|
||
and DOS. I left off just as we started talking about devices in
|
||
DOS and UNIX. Lets return to this discussion where we left off.
|
||
|
||
In the DOS operating system devices are handled through
|
||
special drivers and a combination of special address locations
|
||
and port locations. Before I get into the workings of memory and
|
||
port addressing let me explain what a bus is. Computer systems
|
||
are made up of hundreds of small electronic chips called
|
||
Integrated Circuits (IC's). The most important IC in the system
|
||
is the CPU which is also in most cases the largest (physically).
|
||
One of the reasons the CPU is so large is that it has to have
|
||
electrical connections for other IC's such as RAM, ROM, and I/O
|
||
devices. In the case where several leads are grouped together to
|
||
form a binary address it is called a bus. Memory addressing is
|
||
done by setting the status of a special address bus in a computer
|
||
to the desired address and then reading or writing to the data
|
||
bus to examine or change its contents. A port is similar to
|
||
memory addressing but uses special pins on the CPU and can't be
|
||
shared. The CPU usually has three special buses called Address,
|
||
Data, and Port.
|
||
|
||
By now your are probably asking what does this have to do
|
||
with connecting devices to the computer? Well, in order to
|
||
installed a serial port in your computer you must have an
|
||
available address space for the card and a way to talk to that
|
||
card. In DOS this is done by using a group of pre-defined port
|
||
and address location as well as an interrupt number. Everything
|
||
we have discussed so far is the same in both UNIX and DOS systems
|
||
but here comes the difference. In order to talk to this card in
|
||
the DOS system you must use one of those special pre-defined and
|
||
limited sets of address/port/interrupt sets. For example if you
|
||
choose to install a serial card as COM1: in DOS what does that
|
||
mean? By setting the switches on the card to be installed for
|
||
COM1: you are saying that the card will be at port addresses 280
|
||
using interrupt number 4. The DOS system only has two groups of
|
||
address/port/interrupt assignments for serial ports and two for
|
||
parallel ports. The specialty of this assignment allows you to
|
||
communicate with the serial port by referencing the special
|
||
device driver disguised as a file called COM1:.
|
||
|
||
In the UNIX operating system as I mentioned in the last
|
||
column there is a table that you setup containing all the devices
|
||
in the system like the Video display, a Mouse, Serial cards,
|
||
Parallel cards, the Keyboard, even the BIOS ROMs on a hard disk
|
||
controller. This tells the UNIX kernel where to find the card
|
||
when reference by the file names assigned to them. To assign a
|
||
file name to a card you use what's called a Major and Minor
|
||
number in creating special files. We will talk more on this in a
|
||
future article but for now its just important that you understand
|
||
that in UNIX there are 3 types of files. A standard file such as
|
||
a Binary or Text file (same as in DOS), second is a special file
|
||
used to talk to peripherals, and third is a PIPE to be covered
|
||
later. The creation of a special file tells the UNIX kernel how
|
||
to find the specified hardware card because the UNIX version of
|
||
the File Allocation Table (FAT) can contain more information then
|
||
just file names and sizes. A perfect example is when a special
|
||
file is created with Major and Minor numbers indexing into the
|
||
Device Table. These two numbers are used first the major number
|
||
tells the kernel which device in the table to talk to, while the
|
||
second or Minor number indicated which port on multi port cards
|
||
to refer to.
|
||
|
||
So now we have learned that by using major and minor numbers
|
||
(basically just indexes to a device table) allow you to have user
|
||
definable devices in the system and not depend on the planning of
|
||
the originating company like Microsoft or IBM with DOS. In the
|
||
next issue I plan to talk ore about how the Minor number is used
|
||
to communicate with Multiport Serial cards as well as talk a
|
||
little more about interrupts. If you have any suggestions on what
|
||
you would like me to concentrate on or cover a little more in
|
||
depth please leave a message or comment on my BBS by calling 516-
|
||
486-4705 at 1200 or 2400 Baud. Please note that the phone number
|
||
listed in the first column was for subscribers only and the
|
||
number listed above is the free node for all users.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|