RSS

Author Archives: paulsaints

Introductions to Ethernet and Device Driver Design

Ethernet

Ethernet is the most common LAN (Local Area Network) technology in use today. Ethernet was developed by Xerox in the 1970s, and became popular after Digital Equipment Corporation and Intel joined Xerox in developing the Ethernet standard in 1980. Ethernet was officially accepted as IEEE standard 802.3 in 1985.The original Xerox Ethernet operated at 3Mbps. Ethernet networks up to 10Gbps now exist.

Ethernet Cabling

The first Ethernet standard, 10Base-5, ran over thick coaxial cable. A later standard, Ethernet 10Base-2, ran over a much thinner coaxial cable. These two versions of Ethernet were colloquially known as thicknet and thinnet.

Modern Ethernet standards run on UTP (Unshielded Twisted Pair) or fiber-optic cabling.

Ethernet Standard Cable Specification
10Base-T Category 3 UTP
100Base-TX Category 5 UTP
1000Base-T Cat 5e UTP
1000Base-SX Optical Fiber

Ethernet Topologies

Ethernet 10Base-5 and 10Base-2 used a bus topology. Bus topologies were difficult to maintain and troubleshoot.

Modern Ethernet networks use a star topology with an Ethernet hub, switch, or router at the center of the star.

It is still possible to create a two-node Ethernet network in a bus topology using a null-Ethernet cable between the two devices. Read the rest of this entry »

 
Leave a comment

Posted by on March 5, 2011 in Topic 5

 

Linkers, Loaders and Libraries

Linkers

In computer science, a linker or link editor is a program that takes one or more objects generated by a compiler and combines them into a single executable program. In IBM mainframe environments such as OS/360 this program is known as a linkage editor.

On Unix variants the term loader is often used as a synonym for linker. Other terminology was in use, too. For example, on SINTRAN III the process performed by a linker (assembling object files into a program) was called loading (as in loading executable code onto a file). Because this usage blurs the distinction between the compile-time process and the run-time process, this article will use linking for the former and loading for the latter. However, in some operating systems the same program handles both the jobs of linking and loading a program. Read the rest of this entry »

 
Leave a comment

Posted by on March 5, 2011 in Topic 6

 

System Software Advanced: Assembly language and Assemblers

Assembly language

Assembly language, commonly called assembly or asm, is a human-readable notation for the machine language that a specific computer architecture uses. Machine language, a pattern of bits encoding machine operations, is made readable by replacing the raw values with symbols called mnemonics.

For example, a computer with the appropriate processor will understand this x86/IA-32 machine language:

10110000 01100001

For programmers, however, it is easier to remember the equivalent assembly language representation:

mov al, 061h

which means to move the hexadecimal value 61 (97 decimal) into the processor register with the name “al”. The mnemonic “mov” is short for “move”, and a comma-separated list of arguments or parameters follows it; this is a typical assembly language statement. Read the rest of this entry »

 
Leave a comment

Posted by on March 5, 2011 in Topic 6