Computer Hardware and Software Essay
Computer hardware is the collection of physical elements that constitute a computer system. Computer hardware refers to the physical parts or components of a computer such as monitor, keyboard, Computer data storage, hard drive disk, mouse, CPU (graphic cards, sound cards, memory, motherboard and chips), etc. all of which are physical objects that you can actually touch. In contrast, software is untouchable. Software exists as ideas, application, concepts, and symbols, but it has no substance. A combination of hardware and software forms a usable computing system.
A software engineer programming for the Wikimedia Foundation Computer software is any set of machine-readable instructions that directs a computer’s processor to perform specific operations. The term is used to contrast with computer hardware, the physical objects (processor and related devices) that carry out the instructions. Hardware and software require each other; neither has any value without the other. Firmware is software that has been permanently stored in hardware (specifically in non-volatile memory). It thus has qualities of both software and hardware.
Software is a general term. It can refer to all computer instructions in general or to any specific set of computer instructions. It is inclusive of both machine instructions (the binary code that the processor understands) and source code (more human-understandable instructions that must be rendered into machine code by compilers or interpreters before being executed). On most computer platforms, software can be grouped into a few broad categories: * System software is the basic software needed for a computer to operate (most notably the operating system). Application software is all the software that uses the computer system to perform useful work beyond the operation of the computer itself. * Embedded software resides as firmware within embedded systems, devices dedicated to a single use. In that context there is no clear distinction between the system and application software. Software refers to one or more computer programs and data held in the storage of the computer. In other words, software is a set of programs, procedures, algorithms and its documentationconcerned with the operation of a data processing system.
Program software performs the function of the program it implements, either by directly providing instructions to the digital electronics or by serving as input to another piece of software. The term was coined to contrast to the term hardware (meaning physical devices). In contrast to hardware, software “cannot be touched”. Software is also sometimes used in a more narrow sense, meaning application software only. Sometimes the term includes data that has not traditionally been associated with computers, such as film, tapes, and records. 2] Computer software is so called to distinguish it from computer hardware, which encompasses the physical interconnections and devices required to store and execute (or run) the software. At the lowest level, executable code consists of machine language instructions specific to an individual processor. A machine language consists of groups of binary values signifying processor instructions that change the state of the computer from its preceding state. Programs are an ordered sequence of instructions for changing the state of the computer in a particular sequence.
It is usually written in high-level programming languages that are easier and more efficient for humans to use (closer to natural language) than machine language. High-level languages are compiled or interpreted into machine language object code. Software may also be written in an assembly language, essentially, a mnemonic representation of a machine language using a natural language alphabet. Assembly language must be assembled into object code via an assembler.
The first theory about software was proposed by Alan Turing in his 1935 essay Computable numbers with an application to the Entscheidungsproblem (decision problem).  Colloquially, the term is often used to mean application software. In computer science and software engineering, software is all information processed by computer system, programs and data. The academic fields studying software are computer science and software engineering.
As more and more programs enter the realm of firmware, and the hardware itself becomes smaller, cheaper and faster as predicted by Moore’s law, elements of computing first considered to be software, join the ranks of hardware. Most hardware companies today have more software programmers on the payroll than hardware designers, since software tools have automated many tasks of Printed circuit board engineers. Just like the Auto industry, the Software industry has grown from a few visionaries operating out of their garage with prototypes.
Steve Jobs and Bill Gates were the Henry Ford and Louis Chevrolet of their times, who capitalized on ideas already commonly known before they started in the business. In the case of Software development, this moment is generally agreed to be the publication in the 1980s of the specifications for the IBM Personal Computer published by IBM employee Philip Don Estridge. Today his move would be seen as a type of crowd-sourcing. Computer hardware companies not only bundled their software, they also placed demands on the location of the hardware in a refrigerated space called a computer room.
Until that time, software was bundled with the hardware by Original equipment manufacturers (OEMs) such as Data General, Digital Equipment and IBM. When a customer bought aminicomputer, at that time the smallest computer on the market, the computer did not come with Pre-installed software, but needed to be installed by engineers employed by the OEM. Computer hardware companies not only bundled their software, they also placed demands on the location of the hardware in a refrigerated space called a computer room.
Most companies had their software on the books for 0 dollars, unable to claim it as an asset (this is similar to financing of popular music in those days). When Data General introduced the Data General Nova, a company called Digidyne wanted to use its RDOS operating system on its own hardware clone. Data General refused to license their software (which was hard to do, since it was on the books as a free asset), and claimed their “bundling rights”. The Supreme Court set a precedent called Digidyne v.
Data General in 1985. The Supreme Court let a 9th circuit decision stand, and Data General was eventually forced into licensing the Operating System software because it was ruled that restricting the license to only DG hardware was an illegal tying arrangement. Unable to sustain the loss from lawyer’s fees, Data General ended up being taken over by EMC Corporation. The Supreme Court decision made it possible to value software, and also purchase Software patents.
There are many successful companies today that sell only software products, though there are still many common software licensing problems due to the complexity of designs and poor documentation, leading to patent trolls. With open software specifications and the possibility of software licensing, new opportunities arose for software tools that then became the de facto standard, such as DOS for operating systems, but also various proprietary word processing and spreadsheet programs. In a similar growth pattern, proprietary development methods became standard Software development methodology.
Types of software A layer structure showing where theoperating system software and application software are situated while running on a typical desktop computer Software includes all the various forms and roles that digitally stored data may have and play in a computer (or similar system), regardless of whether the data is used as code for a CPU, or other interpreter, or whether it represents other kinds of information. Software thus encompasses a wide array of products that may be developed using different techniques such as ordinary programming languages, scripting languages, microcode, or an FPGAconfiguration.
The types of software include web pages developed in languages and frameworks like PHP, Perl, JSP or ASP. NET and desktop applications likeOpenOffice. org, Microsoft Word developed in languages like C, C++, Objective-C, Java, C#, or Smalltalk. Application software usually runs on an underlying software operating systems such as Linux or Microsoft Windows. Software (or firmware) is also used in video games and for the configurable parts of the logic systems of automobiles, televisions, and other consumer electronics.
Practical computer systems divide software systems into three major classes: system software, programming software and application software, although the distinction is arbitrary, and often blurred. System software System software is computer software designed to operate the computer hardware, to provide basic functionality, and to provide a platform for runningapplication software. System software includes device drivers, operating systems, servers, utilities, and window systems.
System software is responsible for managing a variety of independent hardware components, so that they can work together harmoniously. Its purpose is to unburden the application software programmer from the often complex details of the particular computer being used, including such accessories ascommunications devices, printers, device readers, displays and keyboards, and also to partition the computer’s resources such as memory and processor time in a safe and stable manner.
Programming software include tools in the form of programs or applications that software developers use to create, debug, maintain, or otherwise support other programs and applications. The term usually refers to relatively simple programs such as compilers, debuggers, interpreters, linkers, and text editors, that can be combined together to accomplish a task, much as one might use multiple hand tools to fix a physical object. Programming tools are intended to assist a programmer in writing computer programs, and they may be combined in an integrated development environment (IDE) to more easily manage all of these functions.
Users often see things differently than programmers. People who use modern general purpose computers (as opposed to embedded systems, analog computers and supercomputers) usually see three layers of software performing a variety of tasks: platform, application, and user software. * Platform software: Platform includes the firmware, device drivers, an operating system, and typically a graphical user interface which, in total, allow a user to interact with the computer and itsperipherals (associated equipment). Platform software often comes bundled with the computer.
On a PC you will usually have the ability to change the platform software. * Application software: Application software or Applications are what most people think of when they think of software. Typical examples include office suites and video games. Application software is often purchased separately from computer hardware. Sometimes applications are bundled with the computer, but that does not change the fact that they run as independent applications. Applications are usually independent programs from the operating system, though they are often tailored for specific platforms.
Most users think of compilers, databases, and other “system software” as applications. * User-written software: End-user development tailors systems to meet users’ specific needs. User software include spreadsheet templates and word processor templates. Even email filters are a kind of user software. Users create this software themselves and often overlook how important it is. Depending on how competently the user-written software has been integrated into default application packages, many users may not be aware of the distinction between the original packages, and what has been added by co-workers.
Computer software has to be “loaded” into the computer’s storage (such as the hard drive or memory). Once the software has loaded, the computer is able to execute the software. This involves passing instructions from the application software, through the system software, to the hardware which ultimately receives the instruction as machine code. Each instruction causes the computer to carry out an operation – moving data, carrying out a computation, or altering the control flow of instructions.
Data movement is typically from one place in memory to another. Sometimes it involves moving data between memory and registers which enable high-speed data access in the CPU. Moving data, especially large amounts of it, can be costly. So, this is sometimes avoided by using “pointers” to data instead. Computations include simple operations such as incrementing the value of a variable data element. More complex computations may involve many operations and data elements together.
Quality and reliability
Software quality is very important, especially for commercial and system software like Microsoft Office, Microsoft Windows and Linux. If software is faulty (buggy), it can delete a person’s work, crash the computer and do other unexpected things. Faults and errors are called “bugs. ” Many bugs are discovered and eliminated (debugged) through software testing. However, software testing rarely – if ever – eliminates every bug; some programmers say that “every program has at least one more bug” (Lubarsky’s Law).
All major software companies, such as Microsoft, Novell and Sun Microsystems, have their own software testing departments with the specific goal of just testing. Software can be tested through unit testing, regression testing and other methods, which are done manually, or most commonly, automatically, since the amount of code to be tested can be quite large. For instance, NASA has extremely rigorous software testing procedures for many operating systems and communication functions. Many NASA based operations interact and identify each other through command programs called software.
This enables many people who work at NASA to check and evaluate functional systems overall. Programs containing command software enable hardware engineering and system operations to function much easier together. License The software’s license gives the user the right to use the software in the licensed environment. Some software comes with the license when purchased off the shelf, or an OEM license when bundled with hardware. Other software comes with a free software license, granting the recipient the rights to modify and redistribute the software.
Software can also be in the form of freeware orshareware. Patents Software can be patented in some but not all countries; however, software patents can be controversial in the software industry with many people holding different views about it. The controversy over software patents is about specific algorithms or techniques that the software contains, which may not be duplicated by others and considered intellectual property and copyright infringementdepending on the severity.
Design and implementation Design and implementation of software varies depending on the complexity of the software. For instance, design and creation of Microsoft Wordsoftware will take much more time than designing and developing Microsoft Notepad because of the difference in functionalities in each one. Software is usually designed and created (coded/written/programmed) in integrated development environments (IDE) like Eclipse, Emacs and Microsoft Visual Studio that can simplify the process and compile the program.
As noted in different section, software is usually created on top of existing software and the application programming interface (API) that the underlying software provides like GTK+, JavaBeans or Swing. Libraries (APIs) are categorized for different purposes. For instance, JavaBeans library is used for designing enterprise applications, Windows Forms library is used for designing graphical user interface (GUI) applications like Microsoft Word, and Windows Communication Foundation is used for designing web services.
Underlying computer programming concepts like quicksort, hash table, array, and binary tree can be useful to creating software. When a program is designed, it relies on the API. For instance, if a user is designing a Microsoft Windows desktop application, he/she might use the . NET Windows Forms library to design the desktop application and call its APIs like Form1. Close() and Form1. Show() to close or open the application and write the additional operations him/herself that it need to have.
Without these APIs, the programmer needs to write these APIs him/herself. Companies like Sun Microsystems, Novell, and Microsoft provide their own APIs so that many applications are written using their software libraries that usually have numerous APIs in them. Computer software has special economic characteristics that make its design, creation, and distribution different from most other economic goods. A person who creates software is called a programmer, software engineer or software developer, terms that all have a similar meaning.
Industry and organizations
A great variety of software companies and programmers in the world comprise a software industry. Software can be quite a profitable industry: Bill Gates, the founder of Microsoft was the richest person in the world in 2009 largely by selling the Microsoft Windows and Microsoft Office software products. The same goes for Larry Ellison, largely through his Oracle database software. Through time the software industry has become increasingly specialized.
Non-profit software organizations include the Free Software Foundation, GNU Project and Mozilla Foundation. Software standard organizations like the W3C, IETF develop software standards so that most software can interoperate through standards such as XML, HTML, HTTP or FTP. Other well-known large software companies include Novell, SAP, Symantec, Adobe Systems, and Corel, while small companies often provide innovation.
The hardware components and software are essential to your computer, the two are interdependent to each other, and it means that if one area will be defective then both will not function properly. That is, the hardware and your processor don’t each other, so software will be mediate between so that the processor can give understandable command where the hardware follow, so hardware will be useless if there is no software that can communicate to it.
Likewise software will depend on hardware availability and functionality, that is software will be use if there is no hardware that it should communicate, and after all software will not be around without the hardware. This is a kind of egg and chicken who did come first thing. Regardless of any argument, both are created to make the life of the user easier and convenient, and we can rest assure that there will be an evolution that will innovate existing software and hardware such as voice operated computer which currently we see from other gadgets and stuffs around the globe.
Who knows? Maybe tomorrow, just watch the news…. Protecting both hardware and software are very advisable, obviously. In the hardware part, you should know troubleshooting techniques to locate the problem of your computer hardware by the use of either software or other methods. While in the software part, you should be watching about viruses, malware, or even incorrect installation. Of course, you can always the net by reading some articles pertaining to different pros and cons of both hardware and software.
Hardware Facts The motherboard provides the connections and sockets that let other components communicate with each other. Motherboards come in different shapes and sizes — a motherboard in a laptop computer might not look like one from a desktop PC. The Processor The computer brain is a microprocessor called the central processing unit (CPU). The CPU is a chip containing millions of tiny transistors. It’s the CPU’s job to perform the calculations necessary to make the computer work.
The transistors in the CPU manipulate the data. You can think of a CPU as the decision maker. Memory Another critical component in computers is memory. The two most important kinds of memory are read-only memory (ROM) and random access memory (RAM). Computers can read data stored in ROM, but can’t write new data to it. With RAM, computers can read from and write to that memory. Without computer memory, every calculation on a computer would be stateless.
That means there’d be no way to preserve information from one moment to the next and every process would start on a clean slate. That’s not useful if you want to create complex programs. Many desktop PCs have the capacity for additional RAM. The user simply has to open the computer and plug RAM chips into the appropriate sockets on the motherboard. But other computers are sealed systems, you aren’t meant to open them and make changes so you’re pretty much stuck with what you’ve got.
Hardware And Software Facts
Hardware examples are from the keyboard, mouse, monitor, printer, scanner, speaker to the components that consists your system unit. Hardware actually means hard and visible. On the other hand, software which you visible see but virtually, like your Operating System (Windows XP, Vista, 7….. LinuxOS, MacOS, etc. ), Word processor, spreadsheets, etc. The hardware components and software are essential to your computer, the two are interdependent to each other, and it means that if one area will be defective then both will not function properly.
That is, the hardware and your processor don’t each other, so software will be mediate between so that the processor can give understandable command where the hardware follow, so hardware will be useless if there is no software that can communicate to it. Likewise software will depend on hardware availability and functionality, that is software will be use if there is no hardware that it should communicate, and after all software will not be around without the hardware.
This is a kind of egg and chicken who did come first thing. Regardless of any argument, both are created to make the life of the user easier and convenient, and we can rest assure that there will be an evolution that will innovate existing software and hardware such as voice operated computer which currently we see from other gadgets and stuffs around the globe. Who knows? Maybe tomorrow, just watch the news.
Protecting both hardware and software are very advisable, obviously. In the hardware part, you should know troubleshooting techniques to locate the problem of your computer hardware by the use of either software or other methods. While in the software part, you should be watching about viruses, malware, or even incorrect installation. Of course, you can always the net by reading some articles pertaining to different pros and cons of both hardware and software.