Universal Serial Bus (USB)

USB

Anyone who has been around computers for more that two or three years knows the problem that the Universal Serial Bus is trying to solve -- in the past, connecting devices to computers has been a real headache!

  • Printers connected to parallel printer ports, and most computers only came with one. Things like Zip drives, which need a high-speed connection into the computer, would use the parallel port as well, often with limited success and not much speed.
  • Modems used the serial port, but so did some printers and a variety of odd things like Palm Pilots and digital cameras. Most computers have at most two serial ports, and they are very slow in most cases.
  • Devices that needed faster connections came with their own cards, which had to fit in a card slot inside the computer's case. Unfortunately, the number of card slots is limited and you needed a Ph.D. to install the software for some of the cards.
The goal of USB is to end all of these headaches. The Universal Serial Bus gives you a single, standardized, easy-to-use way to connect up to 127 devices to a computer. Each device can consume up to a maximum of 6 megabits per second (Mbps) of bandwidth, which is fast enough for the vast majority of peripheral devices that most people want to connect to their machines.

USB Ports

Just about any computer that you buy today comes with one or more Universal Serial Bus connectors on the back. These USB connectors let you attach everything from mice to printers to your computer quickly and easily. The operating system supports USB as well, so the installation of the device drivers is quick and easy, too. Compared to other ways of connecting devices to your computer (including parallel ports, serial ports and special cards that you install inside the computer's case), USB devices are incredibly simple!

Now, we will look at USB ports from both a user and a technical standpoint. You will learn why the USB system is so flexible and how it is able to support so many devices so easily -- it's truly an amazing system!


USB Devices

Just about every peripheral made now comes in a USB version. A sample list of USB devices that you can buy today includes:

  • Printers
  • Scanners
  • Mouse
  • Joysticks
  • Flight yokes
  • Digital cameras
  • Webcams
  • Scientific data acquisition devices
  • Modems
  • Speakers
  • Telephones
  • Video phones
  • Storage devices such as Zip drives
  • Network connections

Computer Hard Disk Drive

Hard Disk
Hard disks were invented in the 1950s. They started as large disks up to 20 inches in diameter holding just a few megabytes. They were originally called "fixed disks" or "Winchesters" (a code name used for a popular IBM product). They later became known as "hard disks" to distinguish them from "floppy disks." Hard disks have a hard platter that holds the magnetic medium, as opposed to the flexible plastic film found in tapes and floppies.

At the simplest level, a hard disk is not that different from a cassette tape. Both hard disks and cassette tapes use the same magnetic recording techniques described in how tape recorders work. Hard disks and cassette tapes also share the major benefits of magnetic storage -- the magnetic medium can be easily erased and rewritten, and it will "remember" the magnetic flux patterns stored onto the medium for many years.


How it works

Nearly every desktop computer and server in use today contains one or more hard-disk drives. Every mainframe and supercomputers is normally connected to hundreds of them. You can even find VCR-type devices and camcorders that use hard disks instead of tape. These billions of hard disks do one thing well -- they store changing digital information in a relatively permanent form. They give computers the ability to remember things when the power goes out.

In this article, we'll take apart a hard disk so that you can see what's inside, and also discuss how they organize the gigabytes of information they hold in files!


Open Source Software Codes

If you are an end user and wants to know about a computer program & its codes, it may not be easy, specially in the making of a monopoly over software by giant software firm.

and if you are a beginner in programming & wants to see & experiment some codes, may not be an easy one as the programmers usually were busy & getting reliable codes are also a dream for many.

last but not least, if you are a programmer looking for a platform to publish your project work, discuss issues with similar minded persons & publish codes, there is a centralized resource site which will satisfy all the needs of the above said category, its SourceForge.net.

It is said to be the world's largest Open Source software development web site. SourceForge.net provides free hosting to Open Source software development projects with a centralized resource for managing projects, issues, communications, and code.

So, finding the open source programs & codes are now easy.

Web Security Trends

Cyber-criminals are developing a new genre of highly sophisticated and evasive attacks designed to bypass signature-based and database-reliant security technology.

The latest Web Security Trends Report (Q2 2007) from security firm Finjan warns of a proliferation of "affiliation networks" based on a "hosted model" for malicious code.

The networks use off-the-shelf malicious code packages to compromise highly popular websites and even government domains.

Finjan's study points to the growing presence of malicious code in online advertising on legitimate websites.

"Recent findings reveal that hackers have created a new class of highly evasive attacks which represent a quantum leap in terms of technological sophistication, going far beyond drive-by downloads and code obfuscation," the report states.

"In order to minimise the malicious code's window of exposure, evasive attacks keep track of the actual IP addresses of visitors to a particular website or web page."

Using this information, the attackers restrict exposure to the malicious code to a single view from each unique IP address.

This means that the second time a given IP address tries to access the malicious page, a benign page will be automatically displayed in its place. All traces of the initial malicious page completely disappear.

"Evasive attack techniques, where malicious code is controlled per IP address, country of origin or number of visits, provide hackers with the ability to minimise the malicious code's exposure, thereby reducing the likelihood of detection," said Yuval Ben-Itzhak, chief technology officer at Finjan.

"Moreover, evasive attacks can identify the IP addresses of crawlers used by URL filtering, reputation services and search engines, replying to these engines with legitimate content and increasing the chances of mistakenly being classified as a legitimate category.

"The combination of these evasive attacks with code obfuscation techniques significantly enhances the capability of sophisticated hackers to go undetected. "

A follow-up study conducted by Finjan's Malicious Code Research Centre warns of the growing presence of malicious code in online advertising.

As websites depend more on ad revenues, they often display ads from third-party advertising networks over which they may have little or no control.

While legitimate website owners trust advertisers to display non-malicious content, advertisers sometimes "sublet" space to others.

This hierarchy can often comprise several layers, seriously compromising the level of control the website owner has over advertising content.

The report includes an analysis of an innocent blog site that deploys keyword-based advertisements placed automatically from an ad server.

Finjan found that the ad content also included obfuscated references to malicious code on a third site that uses multiple infection techniques to download a Trojan key-logger to the user's machine.

Another recent example was a banner ad hiding code with the ANI exploit that was being hosted unknowingly on one of the most popular techie websites.

Trojan hits Google's text ads

A new Trojan that hijacks Google text ads and replaces them with ads from a different provider has been picked up by BitDefender.

The antivirus company has identified the threat as Trojan.Qhost.WU which modifies the infected computer's host file, a local storage for domain name/IP address mappings.

The infected machine's browser then reads advertisements from a server at the replacement address rather than from Google.

This damages users and webmasters because it takes away viewers and thus a possible money source from their websites.

Users are advised to let antivirus software delete the Trojan.

Orkut hit by Portuguese Worm

fast-moving worm has infected more than 700,000 users on Google's Orkut social network in just 24 hours.

The Portuguese language attack exploited a vulnerability in Orkut's scrapbook feature to post malicious JavaScript code on a user's page.

On viewing the scrapbook post, the code performed the exploit and downloaded a .js file to the user's machine.

The worm then took control of the user's account, sending out copies of itself to all of the user's friends and joining a group called 'Infectados pelo Vírus do Orkut', which translates as 'Infected by Orkut virus'.

The worm does not appear to download any other malicious programs. The malicious code has been removed from users' pages and the worm has been taken offline.

Java Programming Language

Have you ever wondered how computer programs work? Have you ever wanted to learn how to write your own computer programs? Whether you are 14 years old and hoping to learn how to write your first game, or you are 70 years old and have been curious about computer programming for 20 years, this article is for you.

Here are several vocabulary terms that will make things understandable:

  • Computer program - A computer program is a set of instructions that tell a computer exactly what to do. The instructions might tell the computer to add up a set of numbers, or compare two numbers and make a decision based on the result, or whatever. But a computer program is simply a set of instructions for the computer, like a recipe is a set of instructions for a cook or musical notes are a set of instructions for a musician. The computer follows your instructions exactly and in the process does something useful -- like balancing a checkbook or displaying a game on the screen or implementing a word processor.

  • Programming language - In order for a computer to recognize the instructions you give it, those instructions need to be written in a language the computer understands -- a programming language. There are many computer programming languages -- Fortran, Cobol, Basic, Pascal, C, C++, Java, Perl -- just like there are many spoken languages. They all express approximately the same concepts in different ways.
  • Compiler - A compiler translates a computer program written in a human-readable computer language (like Java) into a form that a computer can execute. You have probably seen EXE files on your computer. These EXE files are the output of compilers. They contain executables -- machine-readable programs translated from human-readable programs.
In order for you to start writing computer programs in a programming language called Java, you need a compiler for the Java language. The next section guides you through the process of downloading and installing a compiler. Once you have a compiler, we can get started. This process is going to take several hours, much of that time being download time for several large files. You are also going to need about 40 megabytes of free disk space (make sure you have the space available before you get started).


Downloading the Java Compiler

In order to get a Java development environment set up on your machine -- you "develop" (write) computer programs using a "development environment" -- you will have to complete the following steps:

  1. Download a large file containing the Java development environment (the compiler and other tools).
  2. Download a large file containing the Java documentation.
  3. If you do not already have WinZip (or an equivalent) on your machine, you will need to download a large file containing WinZip and install it.
  4. Install the Java development environment.
  5. Install the documentation.
  6. Adjust several environment variables.
  7. Test everything out.

Before getting started, it would make things easier if you create a new directory in your temp directory to hold the files we are about to download. We will call this the download directory.

Step 1 - Download the Java development environment

Go to the page http://java.sun.com/j2se/1.4.2/download.html. Download the SDK software by clicking on the "Download J2SE SDK" link. You will be shown a licensing agreement. Click Accept. Select your operating system and download the file to your download directory. This is a huge file, and it will take several hours to download over a normal phone-line modem. The next two files are also large.

Step 2 - Download the Java documentation

Download the documentation by selecting your operating system and clicking the SDK 1.4.1 documentation link.

Step 3 - Download and install WinZip

If you do not have a version of WinZip or an equivalent on your machine, go to the page http://www.winzip.com/ and download an evaluation copy of WinZip. Run the EXE you get to install it. We will use it in a moment to install the documentation.

Step 4 - Install the development kit

Run the j2sdk-1_4_1-*.exe file that you downloaded in step 1. It will unpack and install the development kit automatically.

Step 5 - Install the documentation

Read the installation instructions for the documentation. They will instruct you to move the documentation file to same directory as that containing the development kit you just installed. Unzip the documentation and it will drop into the proper place.

Step 6 - Adjust your environment

As instructed on this page, you need to change your path variable. This is most easily done by opening an MS-DOS prompt and typing PATH to see what the path is set to currently. Then open autoexec.bat in Notepad and make the changes to PATH specified in the instructions.

Step 7 - Test

Now you should be able to open another MS-DOS window and type javac. If everything is set up properly, then you should see a two-line blob of text come out that tells you how to use javac. That means you are ready to go. If you see the message "Bad Command or File Name" it means you are not ready to go. Figure out what you did wrong by rereading the installation instructions. Make sure the PATH is set properly and working. Go back and reread the Programmer's Creed above and be persistent until the problem is resolved.

You are now the proud owner of a machine that can compile Java programs. You are ready to start writing software!

By the way, one of the things you just unpacked is a demo directory full of neat examples. All of the examples are ready to run, so you might want to find the directory and play with some of the samples. Many of them make sounds, so be sure to turn on your speakers. To run the examples, find pages with names like example1.html and load them into your usual Web browser.