About Me

Compzone08
Seorang blogger yang ingin mencari teman sebanyak banyaknya
Lihat profil lengkapku

Selasa, April 29, 2008

Advanced Micro Devices 0

Advanced Micro Devices, Inc. (abbreviated AMD; NYSE: AMD) is an American multinational semiconductor company based in Sunnyvale, California, that develops computer processors and related technologies for commercial and consumer markets. Its main products include microprocessors, motherboard chipsets, embedded processors and graphics processors for servers, workstations and personal computers, and processor technologies for handheld devices, digital television and game consoles. AMD is the second-largest global supplier of microprocessors based on the x86 architecture after Intel Corporation, and the third-largest supplier graphics processing units. It also owns 21 percent of Spansion, a supplier of non-volatile flash memory. In 2007, AMD ranked eleventh among semiconductor manufacturers.

General history
Advanced Micro Devices was founded on May 1, 1969, by a group of former executives from Fairchild Semiconductor, including Jerry Sanders, III, Ed Turney, John Carey, Sven Simonsen, Jack Gifford and three members from Gifford's team, Frank Botte, Jim Giles, and Larry Stenger. The company began as a producer of logic chips, then entered the RAM chip business in 1975. That same year, it introduced a reverse-engineered clone of the Intel 8080 microprocessor. During this period, AMD also designed and produced a series of bit-slice processor elements (Am2900, Am29116, Am293xx) which were used in various minicomputer designs. During this time, AMD attempted to embrace the perceived shift towards RISC with their own AMD 29K processor, and they attempted to diversify into graphics and audio devices as well as EPROM memory. It had some success in the mid-80s with the AMD7910 and AMD7911 "World Chip" FSK modem, one of the first multistandard devices that covered both Bell and CCITT tones at up to 1200 baud half duplex or 300/300 full duplex. While the AMD 29K survived as an embedded processor and AMD spinoff Spansion continues to make industry leading flash memory, AMD was not as successful with its other endeavors. AMD decided to switch gears and concentrate solely on Intel-compatible microprocessors and flash memory. This put them in direct competition with Intel for x86 compatible processors and their flash memory secondary markets. It has been reported in December 2006 that AMD along with its main rival in the graphics industry nVidia, received subpoenas from the Justice Department regarding possible antitrust violations in the graphics card industry, including the act of fixing prices.

Litigation with Intel
AMD has a long history of litigation with former partner and x86 creator Intel.
* In 1986 Intel broke an agreement it had with AMD to allow them to produce Intel's micro-chips for IBM; AMD filed for arbitration in 1987 and the arbitrator decided in AMD's favor in 1992. Intel disputed this, and the case ended up in the Supreme Court of California. In 1994, that court upheld the arbitrator's decision and awarded damages for breach of contract.
* In 1990, Intel brought a copyright infringement action alleging illegal use of its 287 microcode. The case ended in 1994 with a jury finding for AMD and its right to use Intel's microcode in its microprocessors through the 486 generation.
* In 1997, Intel filed suit against AMD and Cyrix Corp. for misuse of the term MMX. AMD and Intel settled, with AMD acknowledging MMX as a trademark owned by Intel, and with Intel granting AMD rights to market the AMD K6 MMX processor.
* In 2005, following an investigation, the Japan Federal Trade Commission found Intel guilty on a number of violations. On June 27, 2005, AMD won an antitrust suit against Intel in Japan, and on the same day, AMD filed a broad antitrust complaint against Intel in the U.S. Federal District Court in Delaware. The complaint alleges systematic use of secret rebates, special discounts, threats, and other means used by Intel to lock AMD processors out of the global market. Since the start of this action, The Court has issued subpoenas to major computer manufacturers including Dell, Microsoft, IBM, HP, Sony, and Toshiba.

Merger with ATI
AMD announced a merger with ATI Technologies on July 24, 2006. AMD paid $4.3 billion in cash and 58 million shares of its stock for a total of US$5.4 billion. The merger completed on October 25, 2006 and ATI is now part of AMD.

AMD x86 processors
Discontinued processors
8086, Am286, Am386, Am486, Am5x86
In February 1982, AMD signed a contract with Intel, becoming a licensed second-source manufacturer of 8086 and 8088 processors. IBM wanted to use the Intel 8088 in its IBM PC, but IBM's policy at the time was to require at least two sources for its chips. AMD later produced the Am286 under the same arrangement, but Intel canceled the agreement in 1986 and refused to convey technical details of the i386 part. AMD challenged Intel's decision to cancel the agreement and won in arbitration, but Intel disputed this decision. A long legal dispute followed, ending in 1994 when the Supreme Court of California sided with AMD. Subsequent legal disputes centered on whether AMD had legal rights to use derivatives of Intel's microcode. In the face of uncertainty, AMD was forced to develop "clean room" versions of Intel code. In 1991, AMD released the Am386, its clone of the Intel 386 processor. It took less than a year for the company to sell a million units. Later, the Am486 was used by a number of large OEMs, including Compaq, and proved popular. Another Am486-based product, the Am5x86, continued AMD's success as a low-price alternative. However, as product cycles shortened in the PC industry, the process of reverse engineering Intel's products became an ever less viable strategy for AMD.

K5, K6, Athlon (K7)
AMD's first completely in-house x86 processor was the K5 which was launched in 1996. The "K" was a reference to "Kryptonite", which from comic book lore, was the only substance that could harm Superman, with a clear reference to Intel, which dominated in the market at the time, as "Superman". In 1996, AMD purchased NexGen specifically for the rights to their Nx series of x86-compatible processors. AMD gave the NexGen design team their own building, left them alone, and gave them time and money to rework the Nx686. The result was the K6 processor, introduced in 1997. The K7 was AMD's seventh generation x86 processor, making its debut on June 23, 1999, under the brand name Athlon. On October 9, 2001 the Athlon XP was released, followed by the Athlon XP with 512KB L2 Cache on February 10, 2003.

Current processors
Athlon 64/First generation Opteron (K8)
The K8 is a major revision of the K7 architecture, with the most notable features being the addition of a 64-bit extension to the x86 instruction set (officially called AMD64), the incorporation of an on-chip memory controller, and the implementation of an extremely high performance point-to-point interconnect called HyperTransport, as part of the Direct Connect Architecture. The technology was initially launched as the Opteron server-oriented processor. Shortly thereafter it was incorporated into a product for desktop PCs, branded Athlon 64.

Dual-core/Second generation Opteron
AMD released the first dual core Opteron, an x86-based server CPU, on April 21, 2005. The first desktop-based dual core processor family — the Athlon 64 X2 — came a month later. In early May 2007, AMD had abandoned the string "64" in its dual-core desktop product branding, becoming Athlon X2, downplaying the significance of 64-bit computing in its processors while upcoming updates involves some of the improvements to the microarchitecture, and a shift of target market from mainstream desktop systems to value dual-core desktop systems. AMD has also started to release dual-core Sempron processors in early 2008 exclusively in China, branded as Sempron 2000 series, with lower HyperTransport speed and smaller L2 cache, thus the firm completes its dual-core product portfolio for each market segment.

Phenom/Third generation Opteron (K10)
The latest microprocessor architecture, also known as "AMD K10" is AMD's new microarchitecture. The "AMD K10" is the immediate successor to the AMD K8 microarchitecture. The first processors released on this architecture were introduced on September 10, 2007 consisting of nine quad-core Third Generation Opteron processors. K10 processors will come in dual, triple-core and quad-core versions with all cores on one single die.

Future processors
Bulldozer and Bobcat
After the K10 architecture, AMD will move to a modular design methodology named "M-SPACE", where two new processor cores, codenamed "Bulldozer" and "Bobcat" will be released in the 2009 timeframe. While very little preliminary information exists even in AMD's Technology Analyst Day 2007, both cores are to be built from the ground up. The Bulldozer core focused on 10 watt to 100 watt products, with optimizations for performance-per-watt ratios and HPC applications and includes newly announced SSE5 instructions, while the Bobcat core will focus on 1 watt to 10 watt products, given that the core is a simplified x86 core to reduce power draw. Both of the cores will be able to incorporate full DirectX compatible GPU core(s) under the Fusion label, or as standalone products as a general purpose CPU.

AMD Fusion
After the merger between AMD and ATI, an initiative codenamed Fusion was announced that merges a CPU and GPU on one chip, including a minimum 16 lane PCI Express link to accommodate external PCI Express peripherals, thereby eliminating the requirement of a northbridge chip completely from the motherboard. It is expected to be released in 2009.

Other platforms and technologies
AMD chipsets
Before the launch of Athlon 64 processors in 2003, AMD designed chipsets for their processors spanning the K6 and K7 processor generations. The chipsets include the AMD-640, AMD-751 and the AMD-761 chipsets. The situation changed in 2003 with the release of Athlon 64 processors, and AMD chose not to further design its own chipsets for its desktop processors while opening the desktop platform to allow other firms to design chipsets. This is the "Open Platform Initiative". The initiative was proven to be a success, with many firms such as Nvidia, ATI, VIA and SiS developing their own chipset for Athlon 64 processors and later Athlon 64 X2 and Athlon 64 FX processors, including the Quad FX platform chipset from Nvidia. The initiative went further with the release of Opteron server processors as AMD stopped the design of server chipsets in 2004 after releasing the AMD-8111 chipset, and again opened the server platform for firms to develop chipsets for Opteron processors. As of today, Nvidia and Broadcom are the sole designing firms of server chipsets for Opteron processors. As the company completed the acquisition of ATI Technologies in 2006, the firm gained the ATI design team for chipsets which previously designed the Radeon Xpress 200 and the Radeon Xpress 3200 chipsets. AMD then renamed the chipsets for AMD processors under AMD branding (for instance, the CrossFire Xpress 3200 chipset was renamed as AMD 580X CrossFire chipset). In February 2007, AMD announced the first AMD-branded chipset since 2004 with the release of the AMD 690G chipset (previously under the development codename RS690), targeted at mainstream IGP computing. It was the industry's first to implement a HDMI 1.2 port on motherboards, shipping for more than a million units. While ATI had aimed at releasing an Intel IGP chipset, the plan was scrapped and the inventories of Radeon Xpress 1250 (codenamed RS600, sold under ATI brand) was sold to two OEMs, Abit and AsRock. Although AMD states the firm will still produce Intel chipsets, Intel had not granted the license of 1333 MHz FSB to ATI. Considering the rivalry between AMD and Intel, AMD is less likely to release more Intel chipset designs in the foreseeable future. On November 15, 2007, AMD has announced a new chipset series portfolio, the AMD 7-Series chipsets, covering from enthusiast multi-graphics segment to value IGP segment, to replace the AMD 480/570/580 chipsets and AMD 690 series chipsets. Marking AMD's first enthusiast multi-graphics chipset. Discrete graphics chipsets were launched on November 15, 2007 as part of the codenamed Spider desktop platform, and IGP chipsets will be launched at a later time in Spring 2008 as part of the codenamed cartwheel platform. AMD will also return to the server chipsets market with the next-generation AMD 800S series server chipsets, scheduled to be released in 2009 timeframe.

AMD Live!
AMD LIVE! is a platform marketing initiative focusing the consumer electronics segment, with a recently announced Active TV initiative for streaming Internet videos from web video services such as YouTube, into AMD Live! PC as well as connected digital TVs, together with a scheme for an ecosystem of certified peripherals for the ease of customers to identify peripherals for AMD Live! systems for digital home experience, called "AMD Live! Ready".

AMD Quad FX platform
The AMD Quad FX platform, being an extreme enthusiast platform, allows two processors to connect through HyperTransport, which is a similar setup to dual-processor (2P) servers, excluding the use of buffered memory/registered memory DIMM modules, and a server motherboard, the current setup includes two Athlon 64 FX FX-70 series processors and a special motherboard. AMD pushed the platform for the surging demands for what AMD calls "megatasking" for true enthusiasts, the ability to do more tasks on one single system. The platform refreshes with the introduction of Phenom FX processors and the next-generation RD790 chipset, codenamed "FASN8".

Commercial platform
Server/Workstation platform
The first AMD server/workstation platform after ATI acquisition is scheduled to be released on 2009 timeframe. Codenamed Piranha, the server platform consists of AMD 870S/890S + SB700S server chipsets, supporting Socket G3 processors starting from 45 nm processors codenamed Montreal, with the implementation of G3MX memory buffering technology.

Virtualization
AMD's virtualization extension to the 64-bit x86 architecture is named AMD Virtualization, also known by the abbreviation AMD-V, and is sometimes referred to by the code name "Pacifica". AMD processors using Socket AM2, Socket S1, and Socket F include AMD Virtualization support. AMD Virtualization is also supported by release two (8200, 2200 and 1200 series) of the Opteron processors. The third generation (8300 and 2300 series) of Opteron processors will see an update in virtualization technology, specifically the Rapid Virtualization Indexing (also known by the development name Nested Page Tables), alongside the Tagged TLB and Device Exclusion Vector (DEV). AMD also promotes the "AMD I/O Virtualization Technology" (also known as IOMMU) for I/O virtualization. The AMD IOMMU specification has been updated to version 1.2. The specification describes the use of a HyperTransport architecture.

Commercial initiatives
* AMD Trinity, provides support for virtualization, security and management. Key features include AMD-V technology, codenamed Presidio trusted computing platform technology, I/O Virtualization and Open Management Partition.
* AMD Raiden, future clients similar to the Jack PC to be connected through network to a blade server for central management, to reduce client form factor sizes with AMD Trinity features.
* Torrenza, coprocessors support through interconnects such as HyperTransport as PCI Express (though more focus was at HyperTransport enabled coprocessors), also opening processor socket architecture to other manufacturers, Sun and IBM are among the supporting consortium, with rumoured POWER7 processors would be socket-compatible to future Opteron processors. The move made rival Intel responded with the open of Front Side Bus (FSB) architecture as well as Geneseo, a collaboration project with IBM for coprocessors connected through PCI Express. Note that AMD positioned Torrenza for commercial segment, whilst Intel positioned Geneseo for all segments including consumer desktop segments.
* Various certified systems programs and platforms: AMD Commercial Stable Image Platform (CSIP), together with AMD Validated Server program, AMD True Server Solutions, AMD Thermally Tested Barebones Platforms and AMD Validated Server Program, providing certified systems for business from AMD.

Desktop platforms
Starting in 2007, AMD, following Intel, began using codenames for its desktop platforms. The platforms, unlike Intel's approach, will refresh every year, putting focus on platform specialization. The platform includes components as AMD processors, chipsets, ATI graphics and other features, but continued to the open platform approach, and welcome components from other vendors such as VIA, SiS, and Nvidia, as well as wireless product vendors. Updates to the platform includes the implemtation of IOMMU I/O Virtualization with 45 nm generation of processors, and the AMD 800 chipset series in 2009.

Embedded systems
Alchemy processors
In February 2002, AMD acquired Alchemy Semiconductor and continued its line of processor in MIPS architecture processors, targets the hand-held and Portable media player markets. On 13 June 2006, AMD officially announced that the Alchemy processor line was transferred to Raza Microelectronics Inc.

Geode processors
In August 2003, AMD also purchased the Geode business which was originally the Cyrix MediaGX from National Semiconductor to augment its existing line of embedded x86 processor products. During the second quarter of 2004, it launched new low-power Geode NX processors based on the K7 Thoroughbred architecture with speeds of fanless processors 667 MHz and 1 GHz, and 1.4 GHz processor with fan, of TDP 25 W. This technology is used in a variety of embedded systems (Casino slot machines and customer kiosks for instance), several UMPC designs in Asia markets, as well as the OLPC XO-1 computer, an inexpensive laptop computer intended to be distributed to children in developing countries around the world.

AMD64 Embedded processors
For the past couple of years AMD has been introducing 64-bit processors into its embedded product line starting with the AMD Opteron processor. Leveraging the high throughput enabled through HyperTransport and the Direct Connect Architecture these server class processors have been targeted at high end telecom and storage applications. In 2006 AMD added the AMD Athlon, AMD Turion and Mobile AMD Sempron processors to its embedded product line. Leveraging the same 64-bit instruction set and Direct Connect Architecture as the AMD Opteron but at lower power levels and in smaller footprint packages, these processors were well suited to a variety of traditional embedded applications. Throughout 2007 and into 2008 AMD has continued to add both single-core Mobile AMD Sempron and AMD Athlon processors and dual-core AMD Athlon X2 and AMD Turion processors to its embedded product line and now offers embedded 64-bit solutions starting with 8W TDP Mobile AMD Sempron and AMD Athlon processors for fan-less designs up to multi-processor systems leveraging multi-core AMD Opteron processors all supporting longer than standard availability.

Embedded Chipsets
In April 2007, AMD announced the release of the M690T integrated graphics chipset for embedded designs. This enabled AMD to offer complete processor and chipset solutions targeted at embedded applications requiring high performance 3D and video such as emerging digital signage, kiosk and Point of Sale applications. The M690T was followed by the M690E specifically for embedded applications which removed the TV output, which required Macrovision licensing for OEMs, and enabled native support for dual TMDS outputs, enabling dual independent DVI interfaces.

Flash technology
While less visible to the general public than its CPU business, AMD is also a global leader in flash memory. In 1993, AMD established a 50-50 partnership with Fujitsu called FASL, and merged into a new company called FASL LLC in 2003. The joint venture firm went public under ticker symbol SPSN in December 2005, with AMD shares drop to 37%. AMD no longer directly participates in the Flash memory devices market now as AMD entered into a non-competition agreement, as of December 21, 2005, with Fujitsu and Spansion, pursuant to which it agreed not to directly or indirectly engage in a business that manufactures or supplies standalone semiconductor devices (including single chip, multiple chip or system devices) containing only Flash memory.

Mobile platforms
AMD LIVE! is a platform marketing initiative focusing the consumer electronics segment, with a recently announced Active TV initiative for streaming Internet videos from web video services such as YouTube, into AMD Live! PC as well as connected digital TVs, together with a scheme for an ecosystem of certified peripherals for the ease of customers to identify peripherals for AMD Live! systems for digital home experience, called "AMD Live! Ready".

AMD Quad FX platform
The AMD Quad FX platform, being an extreme enthusiast platform, allows two processors to connect through HyperTransport, which is a similar setup to dual-processor (2P) servers, excluding the use of buffered memory/registered memory DIMM modules, and a server motherboard, the current setup includes two Athlon 64 FX FX-70 series processors and a special motherboard. AMD pushed the platform for the surging demands for what AMD calls "megatasking" for true enthusiasts, the ability to do more tasks on one single system. The platform refreshes with the introduction of Phenom FX processors and the next-generation RD790 chipset, codenamed "FASN8".

Commercial platform
Server/Workstation platform
The first AMD server/workstation platform after ATI acquisition is scheduled to be released on 2009 timeframe. Codenamed Piranha, the server platform consists of AMD 870S/890S + SB700S server chipsets, supporting Socket G3 processors starting from 45 nm processors codenamed Montreal, with the implementation of G3MX memory buffering technology.

Virtualization
AMD's virtualization extension to the 64-bit x86 architecture is named AMD Virtualization, also known by the abbreviation AMD-V, and is sometimes referred to by the code name "Pacifica". AMD processors using Socket AM2, Socket S1, and Socket F include AMD Virtualization support. AMD Virtualization is also supported by release two (8200, 2200 and 1200 series) of the Opteron processors. The third generation (8300 and 2300 series) of Opteron processors will see an update in virtualization technology, specifically the Rapid Virtualization Indexing (also known by the development name Nested Page Tables), alongside the Tagged TLB and Device Exclusion Vector (DEV). AMD also promotes the "AMD I/O Virtualization Technology" (also known as IOMMU) for I/O virtualization. The AMD IOMMU specification has been updated to version 1.2. The specification describes the use of a HyperTransport architecture.

Commercial initiatives
* AMD Trinity, provides support for virtualization, security and management. Key features include AMD-V technology, codenamed Presidio trusted computing platform technology, I/O Virtualization and Open Management Partition.
* AMD Raiden, future clients similar to the Jack PC to be connected through network to a blade server for central management, to reduce client form factor sizes with AMD Trinity features.
* Torrenza, coprocessors support through interconnects such as HyperTransport as PCI Express (though more focus was at HyperTransport enabled coprocessors), also opening processor socket architecture to other manufacturers, Sun and IBM are among the supporting consortium, with rumoured POWER7 processors would be socket-compatible to future Opteron processors. The move made rival Intel responded with the open of Front Side Bus (FSB) architecture as well as Geneseo, a collaboration project with IBM for coprocessors connected through PCI Express. Note that AMD positioned Torrenza for commercial segment, whilst Intel positioned Geneseo for all segments including consumer desktop segments.
* Various certified systems programs and platforms: AMD Commercial Stable Image Platform (CSIP), together with AMD Validated Server program, AMD True Server Solutions, AMD Thermally Tested Barebones Platforms and AMD Validated Server Program, providing certified systems for business from AMD.

Desktop platforms
Starting in 2007, AMD, following Intel, began using codenames for its desktop platforms. The platforms, unlike Intel's approach, will refresh every year, putting focus on platform specialization. The platform includes components as AMD processors, chipsets, ATI graphics and other features, but continued to the open platform approach, and welcome components from other vendors such as VIA, SiS, and Nvidia, as well as wireless product vendors. Updates to the platform includes the implemtation of IOMMU I/O Virtualization with 45 nm generation of processors, and the AMD 800 chipset series in 2009.

Embedded systems
Alchemy processors
In February 2002, AMD acquired Alchemy Semiconductor and continued its line of processor in MIPS architecture processors, targets the hand-held and Portable media player markets. On 13 June 2006, AMD officially announced that the Alchemy processor line was transferred to Raza Microelectronics Inc.

Geode processors
In August 2003, AMD also purchased the Geode business which was originally the Cyrix MediaGX from National Semiconductor to augment its existing line of embedded x86 processor products. During the second quarter of 2004, it launched new low-power Geode NX processors based on the K7 Thoroughbred architecture with speeds of fanless processors 667 MHz and 1 GHz, and 1.4 GHz processor with fan, of TDP 25 W. This technology is used in a variety of embedded systems (Casino slot machines and customer kiosks for instance), several UMPC designs in Asia markets, as well as the OLPC XO-1 computer, an inexpensive laptop computer intended to be distributed to children in developing countries around the world.

AMD64 Embedded processors
For the past couple of years AMD has been introducing 64-bit processors into its embedded product line starting with the AMD Opteron processor. Leveraging the high throughput enabled through HyperTransport and the Direct Connect Architecture these server class processors have been targeted at high end telecom and storage applications. In 2006 AMD added the AMD Athlon, AMD Turion and Mobile AMD Sempron processors to its embedded product line. Leveraging the same 64-bit instruction set and Direct Connect Architecture as the AMD Opteron but at lower power levels and in smaller footprint packages, these processors were well suited to a variety of traditional embedded applications. Throughout 2007 and into 2008 AMD has continued to add both single-core Mobile AMD Sempron and AMD Athlon processors and dual-core AMD Athlon X2 and AMD Turion processors to its embedded product line and now offers embedded 64-bit solutions starting with 8W TDP Mobile AMD Sempron and AMD Athlon processors for fan-less designs up to multi-processor systems leveraging multi-core AMD Opteron processors all supporting longer than standard availability.

Embedded Chipsets
In April 2007, AMD announced the release of the M690T integrated graphics chipset for embedded designs. This enabled AMD to offer complete processor and chipset solutions targeted at embedded applications requiring high performance 3D and video such as emerging digital signage, kiosk and Point of Sale applications. The M690T was followed by the M690E specifically for embedded applications which removed the TV output, which required Macrovision licensing for OEMs, and enabled native support for dual TMDS outputs, enabling dual independent DVI interfaces.

Flash technology
While less visible to the general public than its CPU business, AMD is also a global leader in flash memory. In 1993, AMD established a 50-50 partnership with Fujitsu called FASL, and merged into a new company called FASL LLC in 2003. The joint venture firm went public under ticker symbol SPSN in December 2005, with AMD shares drop to 37%. AMD no longer directly participates in the Flash memory devices market now as AMD entered into a non-competition agreement, as of December 21, 2005, with Fujitsu and Spansion, pursuant to which it agreed not to directly or indirectly engage in a business that manufactures or supplies standalone semiconductor devices (including single chip, multiple chip or system devices) containing only Flash memory.

Mobile platforms
AMD produces their own processors in wholly owned semiconductor Fabrication Plants, called "FABs". AMD uses a "FAB x" naming convention for their production facilities, where "x" is the number of years that have passed between the founding of AMD and the date the FAB opened. At their Fabrication facilities, AMD utilizes a system called Automated Precision Manufacturing (APM). APM is a collection of manufacturing technologies AMD has developed over their history (many of which AMD holds patents for), which are designed to enhance the microprocessor production process, primarily in terms of yield. Much of APM is related to removing the "human equation" from the manufacturing process by isolating in-process wafers in containers that are only exposed to clean room facilities. AMD claims that the technologies that combine to make APM are unique to the industry and make it the foremost semiconductor manufacturer in the world - a fact which is lent some credence by their current agreement with Chartered Semiconductor Manufacturing based in Singapore. India's first Fab City, a silicon chip manufacturing facility, being setup with an investment of $3 billion by the AMD-SemIndia consortium. AMD currently has a production agreement with foundry Chartered Semiconductor Manufacturing which allows Chartered access to AMD Automated Precision Manufacturing (APM) process technology, in exchange for which Chartered will act as extra production capacity for AMD. Through the acquisition of ATI, AMD also has manufacturing agreements with TSMC to produce ATI's lines of graphics and chipset processors. It is currently unclear how much of ATI's manufacturing needs will be moved to AMD's own fabs and how much will remain outsourced to other foundry companies, but AMD has announced plans for future processors to be outsourced to TSMC, while coincidently TSMC had announced it had received orders to fabricate x86 processors.

Current production facilities
AMD's main microprocessor manufacturing and design facilities are located in Dresden, Germany. Additionally, highly integrated microprocessors are manufactured in Taiwan made by third-party manufacturers under strict license from AMD. Between 2003 and 2005, they constructed a second manufacturing plant (300 mm 90 nm process SOI) in the same complex in order to increase the number of chips they can produce, thus becoming more competitive with Intel. The new plant has been named "Fab 36", in recognition of AMD's 36 years of operation, and is expected to reach full production in mid-2007. AMD recently announced that they have just completed the conversion of Fab 36 from 90 nm to 65 nm and have now shifted their focus to the 45 nm conversion. AMD has planned expansions in their production capacity. In addition to the completion of Fab 36 in Dresden, AMD is planning to upgrade Fab 30 (adjacent to Fab 36) in Dresden from 200 mm 90 nm process SOI to a 300 mm 65 nm process SOI facility and rename it Fab 38. Originally, Fab 30 was supposed to begin 65 nm production in late 2007 but AMD recently announced they would slow down the upgrade to reduce capital expenditures. Packaging and testing facilities for its microprocessor products are located in Singapore, Malaysia and China. Furthermore, AMD announced plans to open a new $3.2 billion facility at the Luther Forest Technology Campus across the towns of Malta and Stillwater in Saratoga County, New York. This new Fab 4x will likely produce 300 mm 32 nm process SOI production, with construction taking place from 2009 to 2010. Some speculation exists as to whether this facility will use high-K/metal gate technology that AMD obtained from IBM. AMD has also invested $3billion to build a chip fabrication plant in India. Currently, AMD is manufacturing chips in India as a result of their partnership with SemIndia, a group of investors aiming at building a wafer fab, as well as assembly and test operation centers. "AMD ponders over new chip plant in India" In June 2006, Chartered Semiconductor began shipments of manufactured AMD microprocessors, many of which are shipped from Singapore to Taiwanese and Chinese OEM/ODM manufacturing companies that build computers for companies like Lenovo and Dell. AMD maintains major design facilities in Fort Collins, CO, Sunnyvale, CA, Austin, TX, Boxborough, MA, Bangalore, India, and Hyderabad, India. With the acquisition of ATI Technologies, company gained ownership over major design facilities in Markham, ON and Santa Clara, CA.

Partnerships
AMD utilizes strategic industry partnerships to further its business interests as well as to tackle Intel's dominance and resources. Notably Nvidia's nForce2 chipset generated substantial revenues for Nvidia as a popular enthusiast part. A partnership between AMD and Alpha Processor Inc. developed HyperTransport, a point-to-point interconnect standard which was turned over to an industry standards body for finalization. It is now used in modern AMD processor compatible motherboards. AMD also formed a strategic partnership with IBM, under which AMD gained silicon on insulator (SOI) manufacturing technology, and detailed advice on 90 nm implementation, the partnership was announced by AMD to be extended to 2011 for 32 nm and 22 nm fabrication related technologies. Further, AMD is loosely partnered with end-user companies such as HP, Compaq, ASUS, Alienware, Acer, Evesham Technology, Dell and several others to facilitate processor distribution and sales. On May 18, 2006, Dell announced that it would roll out new servers based on AMD's Opteron chips by years end, thus ending an exclusive relationship with Intel. Dell also began offering AMD Athlon X2 chips in their desktop line-up in September 2006. AMD is also a sponsor of the Scuderia Ferrari Marlboro F1 Team since 2002 and the Discovery Channel Pro Cycling Team since 2004.

Events and publications
Although AMD has frequently stated the inability of providing information about upcoming products and plans, AMD holds Technology Analyst Days (which often shorten as simply "Analyst Day") annually or semi-annually to reveal and explain key future technologies, as well as official technology roadmaps. While the event held in mid-year is named as "Technology Analyst Day" with main focus on upcoming technologies and trends and the end-of-year event is named "Financial Analyst Day" and focused on the financial performance of the company during the previous quarters of the year AMD also publishes printed media. Publications include the AMD Accelerate and the discontinued AMDEdge. The AMD Accelerate magazine, published through Ziff Davis Media, puts focus on SME and business applications while AMD Edge focused on overall technologies from AMD. AMD also has electronic newsletters to promote server Opteron processors and related business solutions.

Baca Selanjutnya - Advanced Micro Devices

Accelerated Graphics Port 0

The Accelerated Graphics Port (also called Advanced Graphics Port, often shortened to AGP) is a high-speed point-to-point channel for attaching a graphics card to a computer's motherboard, primarily to assist in the acceleration of 3D computer graphics. Between 2004 and 2007, AGP was replaced by PCI Express. As of 2007 new AGP cards and motherboards are still available to buy, however they are becoming much less common.

Advantages over PCI
As computers became increasingly graphically oriented, successive generations of graphics adapters began to push the limits of PCI, a bus with shared bandwidth. This led to the development of AGP, a "bus" dedicated to graphics adapters. For the needs of modern graphics adapters, AGP is superior to PCI because it provides a dedicated pathway between the slot and the processor rather than sharing the PCI bus, allowing for faster communication. AGP also uses sideband addressing, meaning that the address and data buses are separated so the entire packet does not need to be read to get addressing information. This is done by adding eight extra 8-bit buses which allow the graphics controller to issue new AGP requests and commands at the same time with other AGP data flowing via the main 32 address/data (AD) lines. This results in improved overall AGP data throughput. In addition, to load a texture, a PCI graphics card must copy it from the system's RAM into the card's framebuffer, whereas an AGP card is capable of reading textures directly from system RAM using the Graphics Address Remapping Table (GART). GART reapportions main memory as needed for texture storage, allowing the graphics card to access them directly. The maximum amount of system memory available to AGP is defined as the AGP aperture.

The two main reasons graphics cards with the PCI interface are still produced are that, first, they can be used in nearly any PC; because while some motherboards with built-in graphics adapters lack an AGP slot, few, if any, modern desktop PCs lack PCI slots. Secondly, a user with an appropriate operating system can use several PCI graphics cards (or several PCI graphics cards in combination with one AGP card) simultaneously — to give many different video outputs (for the use of many screens). This is almost impossible with AGP 1.0 and AGP 2.0 cards, because they do not support more than one AGP Master (video card) per AGP Target (chipset interface). AGP 3.0 does support more than one AGP Master per AGP Target, but nonetheless few PC motherboards are equipped with more than one AGP slot. Some server-class computers support having multiple AGP slots in a single system: the HP AlphaServer GS1280 has up to 16 AGP slots, the AlphaServer ES80 up to 4 AGP slots, and the AlphaServer ES47 up to 2 AGP slots.

History
The AGP slot first appeared on x86 compatible system boards based on Socket 7 Pentium and Slot 1 Pentium II processors. Intel introduced AGP support with the i440LX Slot 1 chipset in mid-October 1997 and a flood of products followed from all the major system board vendors. The first Socket 7 chipsets to support AGP were the VIA Apollo VP3, SiS 5591/5592, and the ALI Aladdin V. Intel never released an AGP-equipped Socket 7 chipset. FIC demonstrated the first Socket 7 AGP system board in November 1997 as the FIC PA-2012 based on the VIA Apollo VP3 chipset, followed very quickly by the EPoX P55-VP3 also based on the VIA VP3 chipset which was first to market. Early video chipsets featuring AGP support included the Rendition Vérité V2200, 3dfx Voodoo Banshee, Nvidia RIVA 128, 3Dlabs PERMEDIA 2, Intel i740, ATI Rage series, Matrox Millennium II, and S3 ViRGE GX/2. Some early AGP boards used graphics processors built around PCI and were simply bridged to AGP. This resulted in the cards benefiting little from the new bus, with the only improvement used being the 66 MHz bus clock, with its resulting doubled bandwidth over PCI, and bus exclusivity. Examples of such cards were the Voodoo Banshee, Vérité V2200, Millennium II, and S3 ViRGE GX/2. Intel's i740 was explicitly designed to exploit the new AGP feature set. In fact it was designed to texture only from AGP memory, making PCI versions of the board difficult to implement (local board RAM had to emulate AGP memory.)

Microsoft first introduced AGP support into Windows 95 OEM Service Release 2 (OSR2 version 1111 or 950B) via the USB SUPPLEMENT to OSR2 patch. After applying the patch the Windows 95 system became Windows 95 version 4.00.950 B. The first Windows NT-based operating system to receive AGP support was Windows NT 4.0 with service pack 3, introduced in 1997. Linux support for AGP enhanced fast data transfers was first added in 1999 with the implementation of the AGPgart kernel module.

Versions of AGP
Intel released the first version of AGP; appropriately titled “AGP specification 1.0,” in 1997. It included both the 1x and 2x speeds. Specification 2.0 documented AGP 4X and 3.0 documented 8X. Available versions include:

AGP 1x
A 32-bit channel operating at 66 MHz resulting in a maximum data rate of 266 megabytes per second (MB/s), doubled from the 133 MB/s transfer rate of PCI bus 33 MHz / 32-bit; 3.3 V signaling.

AGP 2x
A 32-bit channel operating at 66 MHz double pumped to an effective 133 MHz resulting in a maximum data rate of 533 MB/s; signaling voltages the same as AGP 1x;

AGP 4x
A 32-bit channel operating at 66 MHz quad pumped to an effective 266 MHz resulting in a maximum data rate of 1066 MB/s (1 GB/s); 1.5 V signaling;

AGP 8x
A 32-bit channel operating at 66 MHz, strobing eight times per clock, delivering an effective 533 MHz resulting in a maximum data rate of 2133 MB/s (2 GB/s); 0.8 V signaling.

There are various physical interfaces (i.e. shape of slots), as explained in the Compatibility section below. AGP version 3.5 is only publicly mentioned by Microsoft under Universal Accelerated Graphics Port (UAGP), which specifies mandatory supports of extra registers once marked optional under AGP 3.0. Upgraded registers include PCISTS, CAPPTR, NCAPID, AGPSTAT, AGPCMD, NISTAT, NICMD. New required registers include APBASELO, APBASEHI, AGPCTRL, APSIZE, NEPG, GARTLO, GARTHI.

Variations
A number of non-standard variations of the AGP interface have been produced by manufacturers.

64-bit AGP
A 64-bit channel. Used in high-end professional graphic cards. It was once proposed as an optional standard for AGP 3.0 in draft documents, but was dropped in the final version of the standard.

AGP Express
Not a true AGP interface, but rather a way to allow an AGP card to be connected over the legacy PCI bus on a PCI Express motherboard. It is a technology found on ECS motherboards, and is used as a selling point for AGP card owners who want a new motherboard but do not want to be forced to buy a PCIe graphics card as well (most new motherboards do not provide AGP slots, only PCIe slots). An "AGP Express" slot is basically a PCI slot (with the electrical power of two) in the AGP form factor. While it offers backward compatibility with AGP cards, its disadvantages include incomplete support (some AGP cards do not work with AGP Express) and reduced performance - the card is forced to use the shared PCI bus at its lower bandwidth, rather than having exclusive use of the faster AGP.

AGI
The ASRock Graphics Interface (AGI) is a proprietary variant of the Accelerated Graphics Port (AGP) standard. Its purpose is to provide AGP-support for those of Asrock's motherboards that use chipsets lacking native AGP-support. However, it's not fully compatible and several videocard chipsets are known to not be supported.

AGX
The EpoX Advanced Graphics eXtended (AGX) is also a proprietary variant of the Accelerated Graphics Port (AGP) standard. It shares the same problems with the AGI port explained above. User manuals even recommend not using AGP 8X ATI cards with AGX slots.
Ultra-AGP, Ultra-AGPII
It is an internal AGP interface standard used by SiS for the north bridge controllers with integrated graphics. The original version supports same bandwidth as AGP 8x, while Ultra-AGPII has maximum 3.2GB/s bandwidth.

XGP
The Biostar Xtreme Graphics Port is also a variant of the Accelerated Graphics Port (AGP) standard. It is similar to the two standards above, in that it supports AGP cards with chipsets that do not support AGP. Also like the above, it has support issues with many AGP cards.

AGR
The Advanced Graphics Riser is a variation of the AGP port used in some PCIe motherboards to offer a limited backwards compatibility with AGP. It is, effectively, a modified PCI slot with no direct interconnection with the CPU or memory, and thus slower even compared to an AGP 1x slot. Its actual compatibility with AGP cards is also limited, while motherboard manufacturers usually publish a specific compatibility list.

AGP Pro
This was a rarely-used slot for cards that required more electrical power. It is a longer slot with additional pins for that purpose. AGP Pro cards were usually workstation-class cards used to accelerate professional computer-aided design applications employed in the fields of architecture, machining, engineering, simulations, and similar fields.

Compatibility
AGP cards are backward and forward compatible within limits. 1.5 V-only keyed cards will not go into 3.3 V slots and vice versa, though "Universal" slots exist which accept either type of card. AGP Pro cards will not fit into standard slots, but standard AGP cards will work in a Pro slot. Some newer cards, like Nvidia's GeForce 6 series or ATI's Radeon X800 series, only have keys for 1.5 V to prevent them from installing in older mainboards without 1.5 V support. Some of the last modern cards with 3.3 V support were the Nvidia GeForce FX series and the ATI Radeon 9500/9700/9800(R350) (but not 9600/9800(R360)). It is important to check voltage compatibility as some cards incorrectly have dual notches and some motherboards incorrectly have fully open slots. Furthermore, some poorly designed older 3.3 V cards incorrectly have the 1.5 V key. Inserting a card into a slot that does not support the correct signaling voltage may cause damage. There are some proprietary exceptions to this rule. For example, Apple Power Macintosh computers with the Apple Display Connector (ADC) have an extra connector which delivers power to the attached display. Additionally, moving cards between computers of various CPU architectures may not work due to firmware issues.

Use today
As of late 2007, few new motherboards feature AGP slots. No new motherboard chipsets are equipped with AGP support, but motherboards continue to be produced with older chipsets that have AGP support. PCI Express allows for higher data transfer rates, has more robust full-duplex support, and also supports other devices. All new graphics processors are designed for PCI-Express. To create AGP graphics cards, those chips require an additional PCIe to AGP bridge chip to convert PCIe signals to and from AGP signals. This incurs additional board costs due to the need for the additional bridge chip and for a separate AGP-designed circuit board. Various manufacturers of graphics cards continue to produce AGP cards for the shrinking AGP user-base. The first bridged cards were the GeForce 6600 and ATI Radeon X800 XL boards, released during 2004-5. As of late 2007, AGP cards from Nvidia are limited to the older GeForce 7 series boards. The only DirectX 10-capable AGP cards are from ATI's Radeon HD 2400 and 2600 budget and mid-range lines, and more recently, one model from the mid-high end, the Radeon HD3850.

Baca Selanjutnya - Accelerated Graphics Port

Google 0

Google Inc. (NASDAQ: GOOG and LSE:GGEA) is an American public corporation, earning revenue from online and mobile advertising related to its Internet search, web-based e-mail, online mapping, office productivity, social networking, and video sharing as well as selling advertising-free versions of the same technologies. Google's headquarters, the Googleplex, is located in Mountain View, California, and the company has 16,805 full-time employees (as of December 31, 2007). It is the largest American company (by market capitalization) that is not part of the Dow Jones Industrial Average (as of October 31, 2007). Google was co-founded by Larry Page and Sergey Brin while they were students at Stanford University and the company was first incorporated as a privately held company on September 7, 1998. Google's initial public offering took place on August 19, 2004, raising US$1.67 billion, making it worth US$23 billion. Google has continued its growth through a series of new product developments, acquisitions, and partnerships. Environmentalism, philanthropy, and positive employee relations have been important tenets during Google's growth, the latter resulting in being identified multiple times as Fortune Magazine's #1 Best Place to Work. The company's unofficial slogan is "Don't be evil", however Google is not without controversy related to its business practices; there are concerns regarding the privacy of personal information, copyright, censorship, and discontinuation of services.

History
Google began in January 1996, as a research project by Larry Page, who was soon joined by Sergey Brin, two Ph.D. students at Stanford University, California. They hypothesized that a search engine that analyzed the relationships between websites would produce better ranking of results than existing techniques, which ranked results according to the number of times the search term appeared on a page. Their search engine was originally nicknamed "BackRub" because the system checked backlinks to estimate a site's importance. A small search engine called Rankdex was already exploring a similar strategy. Convinced that the pages with the most links to them from other highly relevant web pages must be the most relevant pages associated with the search, Page and Brin tested their thesis as part of their studies, and laid the foundation for their search engine. Originally, the search engine used the Stanford University website with the domain google.stanford.edu. The domain google.com was registered on September 15, 1997, and the company was incorporated as Google Inc. on September 7, 1998 at a friend's garage in Menlo Park, California. The total initial investment raised for the new company eventually amounted to almost US$1.1 million, including a US$100,000 check by Andy Bechtolsheim, one of the founders of Sun Microsystems. In March 1999, the company moved into offices in Palo Alto, home to several other noted Silicon Valley technology startups. After quickly outgrowing two other sites, the company leased a complex of buildings in Mountain View at 1600 Amphitheatre Parkway from Silicon Graphics (SGI) in 2003. The company has remained at this location ever since, and the complex has since come to be known as the Googleplex (a play on the word googolplex, a 1 followed by a googol zeros). In 2006, Google bought the property from SGI for US$319 million. The Google search engine attracted a loyal following among the growing number of Internet users, who liked its simple design and usability. In 2000, Google began selling advertisements associated with search keywords. The ads were text-based to maintain an uncluttered page design and to maximize page loading speed. Keywords were sold based on a combination of price bid and clickthroughs, with bidding starting at US$.05 per click. This model of selling keyword advertising was pioneered by Goto.com (later renamed Overture Services, before being acquired by Yahoo! and rebranded as Yahoo! Search Marketing). While many of its dot-com rivals failed in the new Internet marketplace, Google quietly rose in stature while generating revenue. The name "Google" originated from a misspelling of "googol", which refers to 10100, the number represented by a 1 followed by one hundred zeros. Having found its way increasingly into everyday language, the verb "google", was added to the Merriam Webster Collegiate Dictionary and the Oxford English Dictionary in 2006, meaning "to use the Google search engine to obtain information on the Internet." A patent describing part of Google's ranking mechanism (PageRank) was granted on September 4, 2001. The patent was officially assigned to Stanford University and lists Lawrence Page as the inventor.

Financing and initial public offering
The first funding for Google as a company was secured in the form of a US$100,000 contribution from Andy Bechtolsheim, co-founder of Sun Microsystems, given to a corporation which did not yet exist. Around six months later, a much larger round of funding was announced, with the major investors being rival venture capital firms Kleiner Perkins Caufield & Byers and Sequoia Capital. Google's IPO took place on August 19, 2004. 19,605,052 shares were offered at a price of US$85 per share. Of that, 14,142,135 (another mathematical reference as √2 ≈ 1.4142135) were floated by Google, and the remaining 5,462,917 were offered by existing stockholders. The sale of US$1.67 billion gave Google a market capitalization of more than US$23 billion. The vast majority of Google's 271 million shares remained under Google's control. Many of Google's employees became instant paper millionaires. Yahoo!, a competitor of Google, also benefited from the IPO because it owned 8.4 million shares of Google as of August 9, 2004, ten days before the IPO. Google's stock performance after its first IPO launch has gone well, with shares hitting US$700 for the first time on October 31, 2007, due to strong sales and earnings in the advertising market, as well as the release of new features such as the desktop search function and its iGoogle personalized home page. The surge in stock price is fueled primarily by individual investors, as opposed to large institutional investors and mutual funds. The company is listed on the NASDAQ stock exchange under the ticker symbol GOOG and under the London Stock Exchange under the ticker symbol GGEA

Growth
While the company's primary business interest is in the web content arena, Google has begun experimenting with other markets, such as radio and print publications. On January 17, 2006, Google announced that its purchase of a radio advertising company "dMarc", which provides an automated system that allows companies to advertise on the radio. This will allow Google to combine two niche advertising media—the Internet and radio—with Google's ability to laser-focus on the tastes of consumers. Google has also begun an experiment in selling advertisements from its advertisers in offline newspapers and magazines, with select advertisements in the Chicago Sun-Times. They have been filling unsold space in the newspaper that would have normally been used for in-house advertisements. Google was added to the S&P 500 index on March 30, 2006. It replaced Burlington Resources, a major oil producer based in Houston which was acquired by ConocoPhillips.

Acquisitions
Since 2001, Google has acquired several small start-up companies, often consisting of innovative teams and products. One of the earlier companies that Google bought was Pyra Labs. They were the creators of Blogger, a weblog publishing platform, first launched in 1999. This acquisition led to many premium features becoming free. Pyra Labs was originally formed by Evan Williams, yet he left Google in 2004. In early 2006, Google acquired Upstartle, a company responsible for the online word processor, Writely. The technology in this product was used by Google to eventually create Google Docs & Spreadsheets. In February 2006, software company Adaptive Path sold Measure Map, a weblog statistics application, to Google. Registration to the service has since been temporarily disabled. The last update regarding the future of Measure Map was made on April 6, 2006 and outlined many of the service's known issues. In late 2006, Google bought online video site YouTube for US$1.65 billion in stock. Shortly after, on October 31, 2006, Google announced that it had also acquired JotSpot, a developer of wiki technology for collaborative Web sites. On April 13, 2007, Google reached an agreement to acquire DoubleClick. Google agreed to buy the company for US$3.1 billion. On July 9, 2007, Google announced that it had signed a definitive agreement to acquire enterprise messaging security and compliance company Postini.

Partnerships
In 2005, Google entered into partnerships with other companies and government agencies to improve production and services. Google announced a partnership with NASA Ames Research Center to build up 1,000,000 square feet (93,000 m²) of offices and work on research projects involving large-scale data management, nanotechnology, distributed computing, and the entrepreneurial space industry. Google also entered into a partnership with Sun Microsystems in October to help share and distribute each other's technologies. The company entered into a partnership with Time Warner's AOL, to enhance each other's video search services. The same year, the company became a major financial investor of the new .mobi top-level domain for mobile devices, in conjunction with several other companies, including Microsoft, Nokia, and Ericsson among others. In September 2007, Google launched, "Adsense for Mobile", a service for its publishing partners which provides the ability to monetize their mobile websites through the targeted placement of mobile text ads, and acquired the mobile social networking site, Zingku.mobi, to "provide people worldwide with direct access to Google applications, and ultimately the information they want and need, right from their mobile devices." In 2006, Google and News Corp.'s Fox Interactive Media entered into a US$900 million agreement to provide search and advertising on the popular social networking site, MySpace.

Products and services
Google has created services and tools for the general public and business environment alike; including Web applications, advertising networks and solutions for businesses.

Advertising
Most of Google's revenue is derived from advertising programs. For the 2006 fiscal year, the company reported US$10.492 billion in total advertising revenues and only US$112 million in licensing and other revenues. Google AdWords allows Web advertisers to display advertisements in Google's search results and the Google Content Network, through either a cost-per-click or cost-per-view scheme. Google AdSense website owners can also display adverts on their own site, and earn money every time ads are clicked.

Web-based software
The Google web search engine is the company's most popular service. As of August 2007, Google is the most used search engine on the web with a 53.6% market share, ahead of Yahoo! (19.9%) and Live Search (12.9%). Google indexes billions of Web pages, so that users can search for the information they desire, through the use of keywords and operators. Google has also employed the Web Search technology into other search services, including Image Search, Google News, the price comparison site Google Product Search, the interactive Usenet archive Google Groups, Google Maps, and more. In 2004, Google launched its own free web-based e-mail service, known as Gmail (or Google Mail in some jurisdictions). Gmail features spam-filtering technology and the capability to use Google technology to search e-mail. The service generates revenue by displaying advertisements from the AdWords service that are tailored to the content of the e-mail messages displayed on screen. In early 2006, the company launched Google Video, which not only allows users to search and view freely available videos but also offers users and media publishers the ability to publish their content, including television shows on CBS, NBA basketball games, and music videos. In August 2007, Google announced that it would shut down its video rental and sale program and offer refunds and Google Checkout credits to consumers who had purchased videos to own. On February 28, 2008 Google launched the Google Sites wiki as a Google Apps component. Google has also developed several desktop applications, including Google Earth, an interactive mapping program powered by satellite and aerial imagery that covers the vast majority of the planet. Google Earth is generally considered to be remarkably accurate and extremely detailed. Many major cities have such detailed images that one can zoom in close enough to see vehicles and pedestrians clearly. Consequently, there have been some concerns about national security implications. Specifically, some countries and militaries contend the software can be used to pinpoint with near-precision accuracy the physical location of critical infrastructure, commercial and residential buildings, bases, government agencies, and so on. However, the satellite images are not necessarily frequently updated, and all of them are available at no charge through other products and even government sources. For example, NASA and the National Geospatial-Intelligence Agency. Some counter this argument by stating that Google Earth makes it easier to access and research the images.

Many other products are available through Google Labs, which is a collection of incomplete applications that are still being tested for use by the general public. Google has promoted their products in various ways. In London, Google Space was set-up in Heathrow Airport, showcasing several products, including Gmail, Google Earth and Picasa. Also, a similar page was launched for American college students, under the name College Life, Powered by Google. In 2007, some reports surfaced that Google was planning the release of its own mobile phone, possibly a competitor to Apple's iPhone. The project, called Android provides a standard development kit that will allow any "Android" phone to run software developed for the Android SDK, no matter the phone manufacturer. In October 2007, Google SMS service was launched in India allowing users to get business listings, movie showtimes, and information by sending an SMS.

Enterprise products
In 2007, Google launched Google Apps Premier Edition, a version of Google Apps targeted primarily at the business user. It includes such extras as more disk space for e-mail, API access, and premium support, for a price of US$50 per user per year. A large implementation of Google Apps with 38,000 users is at Lakehead University in Thunder Bay, Ontario, Canada.

Platform
Google runs its services on several server farms, each comprising thousands of low-cost commodity computers running stripped-down versions of Linux. While the company divulges no details of its hardware, a 2006 estimate cites 450,000 servers, "racked up in clusters at data centers around the world."

Corporate affairs and culture
Google is known for its relaxed corporate culture, of which its playful variations on its own corporate logo are an indicator. In 2007 and 2008, Fortune Magazine placed Google at the top of its list of the hundred best places to work. Google's corporate philosophy embodies such casual principles as "you can make money without doing evil," "you can be serious without a suit," and "work should be challenging and the challenge should be fun." Google has been criticized for having salaries below industry standards. For example, some system administrators earn no more than US$35,000 per year – considered to be quite low for the Bay Area job market. However, Google's stock performance following its IPO has enabled many early employees to be competitively compensated by participation in the corporation's remarkable equity growth. Google implemented other employee incentives in 2005, such as the Google Founders' Award, in addition to offering higher salaries to new employees. Google's workplace amenities, culture, global popularity, and strong brand recognition have also attracted potential applicants. After the company's IPO in August 2004, it was reported that founders Sergey Brin and Larry Page, and CEO Eric Schmidt, requested that their base salary be cut to US$1.00. Subsequent offers by the company to increase their salaries have been turned down, primarily because, "their primary compensation continues to come from returns on their ownership stakes in Google. As significant stockholders, their personal wealth is tied directly to sustained stock price appreciation and performance, which provides direct alignment with stockholder interests." Prior to 2004, Schmidt was making US$250,000 per year, and Page and Brin each earned a salary of US$150,000. They have all declined recent offers of bonuses and increases in compensation by Google's board of directors. In a 2007 report of the United States' richest people, Forbes reported that Sergey Brin and Larry Page were tied for #5 with a net worth of US$18.5 billion each. In 2007 and through early 2008, Google has seen the departure of several top executives. Justin Rosenstein, Google’s product manager, left in June of 2007. Shortly thereafter, Gideon Yu, former chief financial officer of YouTube, a Google unit, joined Facebook along with Benjamin Ling, a high-ranking engineer, who left in October 2007. In March 2008, two senior Google leaders announced their desire to pursue other opportunities. Sheryl Sandburg, ex-VP of global online sales and operations began her position as COO of Facebook while Ash ElDifrawi, former head of brand advertising, left to become CMO of Netshops Inc.

Googleplex
Google's headquarters in Mountain View, California, is referred to as "the Googleplex" in a play of words; a googolplex being 1 followed by a googol of zeros, and the HQ being a complex of buildings (cf. multiplex, cineplex, etc). The lobby is decorated with a piano, lava lamps, old server clusters, and a projection of search queries on the wall. The hallways are full of exercise balls and bicycles. Each employee has access to the corporate recreation center. Recreational amenities are scattered throughout the campus and include a workout room with weights and rowing machines, locker rooms, washers and dryers, a massage room, assorted video games, Foosball, a baby grand piano, a pool table, and ping pong. In addition to the rec room, there are snack rooms stocked with various foods and drinks. In 2006, Google moved into 311,000 square feet (28,900 m²) of office space in New York City, at 111 Eighth Ave. in Manhattan. The office was specially designed and built for Google and houses its largest advertising sales team, which has been instrumental in securing large partnerships, most recently deals with MySpace and AOL. In 2003, they added an engineering staff in New York City, which has been responsible for more than 100 engineering projects, including Google Maps, Google Spreadsheets, and others. It is estimated that the building costs Google US$10 million per year to rent and is similar in design and functionality to its Mountain View headquarters, including foosball, air hockey, and ping-pong tables, as well as a video game area. In November 2006, Google opened offices on Carnegie Mellon's campus in Pittsburgh. By late 2006, Google also established a new headquarters for its AdWords division in Ann Arbor, Michigan. The size of Google's search system is presently undisclosed. The best estimates place the total number of the company's servers at 450,000, spread over twenty five locations throughout the world, including major operations centers in Dublin (European Operations Headquarters) and Atlanta, Georgia. Google is also in the process of constructing a major operations center in The Dalles, Oregon, on the banks of the Columbia River. The site, also referred to by the media as Project 02, was chosen due to the availability of inexpensive hydroelectric power and a large surplus of fiber optic cable, remnants of the dot com boom of the late 1990s. The computing center is estimated to be the size of two football fields, and it has created hundreds of construction jobs, causing local real estate prices to increase 40%. Upon completion, the center is expected to create 60 to 200 permanent jobs in the town of 12,000 people. Google is taking steps to ensure that their operations are environmentally sound. In October 2006, the company announced plans to install thousands of solar panels to provide up to 1.6 megawatts of electricity, enough to satisfy approximately 30% of the campus' energy needs. The system will be the largest solar power system constructed on a U.S. corporate campus and one of the largest on any corporate site in the world. In June 2007, Google announced that they plan to become carbon neutral by 2008, which includes investing in energy efficiency, renewable energy sources, and purchasing carbon offsets, such as investing in projects like capturing and burning methane from animal waste at Mexican and Brazilian farms.

Innovation time off
As an interesting motivation technique (usually called Innovation Time Off), all Google engineers are encouraged to spend 20% of their work time (one day per week) on projects that interest them. Some of Google's newer services, such as Gmail, Google News, Orkut, and AdSense originated from these independent endeavors. In a talk at Stanford University, Marissa Mayer, Google's Vice President of Search Products and User Experience, stated that her analysis showed that half of the new product launches originated from the 20% time.

Easter eggs and April Fool's Day jokes
Google has a tradition of creating April Fool's Day jokes—such as Google MentalPlex, which allegedly featured the use of mental power to search the web. In 2002, they claimed that pigeons were the secret behind their growing search engine. In 2004, they featured Google Lunar (which claimed to feature jobs on the moon), and in 2005, a fictitious brain-boosting drink, termed Google Gulp was announced. In 2006, they came up with Google Romance, a hypothetical online dating service. In 2007, Google announced two joke products. The first was a free wireless Internet service called TiSP (Toilet Internet Service Provider) in which one obtained a connection by flushing one end of a fiber-optic cable down their toilet and waiting only an hour for a "Plumbing Hardware Dispatcher (PHD)" to connect it to the Internet. Additionally, Google's Gmail page displayed an announcement for Gmail Paper, which allows users of their free email service to have email messages printed and shipped to a snail mail address. Some thought the announcement of Gmail in 2004 around April Fool's Day (as well as the doubling of Gmail's storage space to two gigabytes in 2005) was a joke, although both of these turned out to be genuine announcements. In 2005, a comedic graph depicting Google's goal of "infinity plus one" GB of storage was featured on the Gmail homepage. Google's services contain a number of Easter eggs; for instance, the Language Tools page offers the search interface in the Swedish Chef's "Bork bork bork," Pig Latin, ”Hacker” (actually leetspeak), Elmer Fudd, and Klingon. In addition, the search engine calculator provides the Answer to Life, the Universe, and Everything from Douglas Adams' The Hitchhiker's Guide to the Galaxy. As Google's search box can be used as a unit converter (as well as a calculator), some non-standard units are built in, such as the Smoot. Google also routinely modifies its logo in accordance with various holidays or special events throughout the year, such as Christmas, Mother's Day, or the birthdays of various notable individuals.

IPO and culture
Many people speculated that Google's IPO would inevitably lead to changes in the company's culture, because of shareholder pressure for employee benefit reductions and short-term advances, or because a large number of the company's employees would suddenly become millionaires on paper. In a report given to potential investors, co-founders Sergey Brin and Larry Page promised that the IPO would not change the company's culture. Later Mr. Page said, "We think a lot about how to maintain our culture and the fun elements. We spent a lot of time getting our offices right. We think it's important to have a high density of people. People are packed together everywhere. We all share offices. We like this set of buildings because it's more like a densely packed university campus than a typical suburban office park." However, many analysts are finding that as Google grows, the company is becoming more "corporate". In 2005, articles in The New York Times and other sources began suggesting that Google had lost its anti-corporate, no evil philosophy. In an effort to maintain the company's unique culture, Google has designated a Chief Culture Officer in 2006, who also serves as the Director of Human Resources. The purpose of the Chief Culture Officer is to develop and maintain the culture and work on ways to keep true to the core values that the company was founded on in the beginning — a flat organization, a lack of hierarchy, a collaborative environment.

Philanthropy
In 2004, Google formed a non-profit philanthropic wing, Google.org, with a start-up fund of US$1 billion. The express mission of the organization is to create awareness about climate change, global public health, and global poverty. One of its first projects is to develop a viable plug-in hybrid electric vehicle that can attain 100 mpg. The founding and current director is Dr. Larry Brilliant.

Criticism
As it has grown, Google has found itself the focus of several controversies related to its business practices and services. For example, Google Book Search's effort to digitize millions of books and make the full text searchable has led to copyright disputes with the Authors Guild. Google's cooperation with the governments of China, and to a lesser extent France and Germany (regarding Holocaust denial) to filter search results in accordance to regional laws and regulations has led to claims of censorship. Google's persistent cookie and other information collection practices have led to concerns over user privacy. As of December 11, 2007, Google, like the Microsoft search engine, stores "personal information for 18 months" and by comparison, Yahoo! and AOL (Time Warner) "retain search requests for 13 months." A number of Indian state governments have raised concerns about the security risks posed by geographic details provided by Google Earth's satellite imaging. Google has also been criticized by advertisers regarding its inability to combat click fraud, when a person or automated script is used to generate a charge on an advertisement without really having an interest in the product. Industry reports in 2006 claim that approximately 14 to 20 percent of clicks were in fact fraudulent or invalid. Further, Google has faced allegations of sexism and ageism from former employees. Google has also faced accusations in Harper's Magazine of being extremely excessive with their energy usage, and were accused of employing their "Don't be evil" motto as well as their very public energy saving campaigns as means of trying to cover up or make up for the massive amounts of energy their servers actually require. According to Ginger Strand, the article's author, Google's own energy usage far outweighs the good of their energy savings campaigns.

Baca Selanjutnya - Google

IPV6 0

Internet Protocol version 6 (IPv6) is a network layer for packet-switched internetworks. It is designated as the successor of IPv4, the current version of the Internet Protocol, for general use on the Internet. The main change brought by IPv6 is a much larger address space that allows greater flexibility in assigning addresses. The extended address length eliminates the need to use network address translation to avoid address exhaustion, and also simplifies aspects of address assignment and renumbering when changing providers. It was not the intention of IPv6 designers, however, to give permanent unique addresses to every individual and every computer. It is common to see examples that attempt to show that the IPv6 address space is extremely large. For example, IPv6 supports 2128 (about 3.4×1038) addresses, or approximately 5×1028 addresses for each of the roughly 6.5 billion (6.5×109) people alive today. In a different perspective, this is 252 addresses for every star in the known universe – a million times as many addresses per star than IPv4 supported for our single planet. The large number of addresses allows a hierarchical allocation of addresses that may make routing and renumbering simpler. With IPv4, complex CIDR techniques were developed to make the best possible use of a restricted address space. Renumbering, when changing providers, can be a major effort with IPv4, as discussed in RFC 2071 and RFC 2072. With IPv6, however, renumbering becomes largely automatic, because the host identifiers are decoupled from the network provider identifier. Separate address spaces exist for ISPs and for hosts, which are "inefficient" in address space bits but are extremely efficient for operational issues such as changing service providers.

Introduction
By the early 1990s, it was clear that the change to a classless network introduced a decade earlier was not enough to prevent IPv4 address exhaustion and that further changes to IPv4 were needed. By the beginning of 1992, several proposed systems were being circulated and by the end of 1992, the IETF announced a call for white papers (RFC 1650) and the creation of the "IP, the Next Generation" (IPng Area) of working groups. IPng was adopted by the Internet Engineering Task Force on July 25, 1994 with the formation of several "IP Next Generation" (IPng) working groups. By 1996, a series of RFCs were released defining IPv6, starting with RFC 2460. (Incidentally, IPv5 was not a successor to IPv4, but an experimental flow-oriented streaming protocol intended to support video and audio.) It is expected that IPv4 will be supported alongside IPv6 for the foreseeable future. IPv4-only nodes (clients or servers) will not be able to communicate directly with IPv6 nodes, and will need to go through an intermediary; see Transition mechanisms below.

Features and differences from IPv4
To a great extent, IPv6 is a conservative extension of IPv4. Most transport- and application-layer protocols need little or no change to work over IPv6; exceptions are applications protocols that embed network-layer addresses (such as FTP or NTPv3). Applications, however, usually need small changes and a recompile in order to run over IPv6.

Larger address space
The main feature of IPv6 that is driving adoption today is the larger address space: addresses in IPv6 are 128 bits long versus 32 bits in IPv4. The larger address space avoids the potential exhaustion of the IPv4 address space without the need for network address translation (NAT) and other devices that break the end-to-end nature of Internet traffic. It also makes administration of medium and large networks simpler, by avoiding the need for complex subnetting schemes. Subnetting will, ideally, revert to its purpose of logical segmentation of an IP network for optimal routing and access. The drawback of the large address size is that IPv6 carries some bandwidth overhead over IPv4, which may hurt regions where bandwidth is limited (header compression can sometimes be used to alleviate this problem). IPv6 addresses are also very difficult to remember; use of the Domain Name System (DNS) is necessary.

Stateless address autoconfiguration
IPv6 hosts can be configured automatically when connected to a routed IPv6 network using ICMPv6 router discovery messages. When first connected to a network, a host sends a link-local multicast router solicitation request for its configuration parameters; if configured suitably, routers respond to such a request with a router advertisement packet that contains network-layer configuration parameters. If IPv6 autoconfiguration is not suitable, a host can use stateful configuration (DHCPv6) or be configured manually. Stateless autoconfiguration is only suitable for hosts: routers must be configured manually or by other means.

Multicast
Multicast is part of the base specifications in IPv6, unlike IPv4, where it was introduced later. IPv6 does not have a link-local broadcast facility; the same effect can be achieved by multicasting to the all-hosts group (FF02::1). Most environments, however, do not currently have their network infrastructures configured to route multicast: multicast on single subnet will work, but global multicast might not.

Link-local addresses
IPv6 interfaces have link-local addresses in addition to the global addresses that applications usually use. These link-local addresses are always present and never change, which simplifies the design of configuration and routing protocols.

Jumbograms
In IPv4, packets are limited to 64 KiB of payload. When used between capable communication partners and on communication links with a maximum transmission unit (MTU) larger than 65,576 octets (65536 + 40 for the header), IPv6 has optional support for packets over this limit, referred to as jumbograms which can be as large as 4 GiB. The use of jumbograms may improve performance over high-MTU networks.

Network-layer security
IPsec, the protocol for IP network-layer encryption and authentication, is an integral part of the base protocol suite in IPv6; this is unlike IPv4, where it is optional (but usually implemented). IPsec, however, is not widely used at present except for securing traffic between IPv6 Border Gateway Protocol routers.

Mobility
Unlike mobile IPv4, Mobile IPv6 (MIPv6) avoids triangular routing and is therefore as efficient as normal IPv6. This advantage is mostly hypothetical, as neither MIPv4 nor MIPv6 are widely deployed today.

Simpler processing by routers
IPv4 has a checksum field that covers all of the packet header. Since certain fields (such as the TTL field) change during forwarding, the checksum must be recomputed by every router. IPv6 has no error checking at the network layer but instead relies on link layer and transport protocols to perform error checking, which should make forwarding faster.

Deployment status
As of November 2007, IPv6 accounts for a minuscule percentage of the live addresses in the publicly-accessible Internet, which is still dominated by IPv4. With the notable exceptions of stateless auto-configuration, more flexible addressing and Secure Neighbor Discovery (SEND), many of the features of IPv6 have been ported to IPv4 in a more or less elegant manner. Thus IPv6 deployment is primarily driven by IPv4 address space exhaustion, which has been slowed by the introduction of classless inter-domain routing (CIDR) and the extensive use of network address translation (NAT).

IPv4 exhaustion
Estimates as to when the pool of available IPv4 addresses will be exhausted vary widely, and should be taken with caution. In 2003, Paul Wilson (director of APNIC) stated that, based on then-current rates of deployment, the available space would last until 2023. In September 2005 a report by Cisco Systems reported that the pool of available addresses would be exhausted in as little as 4 to 5 years. As of November 2007, a daily updated report projected that the IANA pool of unallocated addresses would be exhausted in May 2010, with the various Regional Internet Registries using up their allocations from IANA in April 2011. This report also argues that, if assigned but unused addresses were reclaimed and used to meet continuing demand, allocation of IPv4 addresses could continue until 2017.

Government incentives
A number of governments, however, are starting to require support for IPv6 in new equipment. The U.S. Government, for example, has specified that the network backbones of all federal agencies must be capable of deploying IPv6 by 2008, and spent the money to acquire a /16 block (281 trillion network addresses) to start the deployment. The Peoples Republic of China has a 5 year plan for deployment of IPv6 called the China Next Generation Internet.

Current deployment
In February 1999, The IPv6 Forum, a world-wide consortium of worldwide leading Internet vendors, Industry Subject Matter Experts, Research & Education Networks was founded to promote the IPv6 technology and raise the market and industry awareness. To drive the deployment of IPv6, regional and local IPv6 Task Forces were created. On 20 July 2004 ICANN announced that the root DNS servers for the Internet had been modified to support both IPv6 and IPv4. The current integration of IPv6 on existing network infrastructures could be monitored from different sources, for example:
* Regional Internet Registries (RIR) IPv6 Prefix Allocation
* IPv6 Transit services
* Japan ISP IPv6 services
In addition modern operating systems have IPv6 turned on by default.

Addressing
28-bit length
The primary change from IPv4 to IPv6 is the length of network addresses. IPv6 addresses are 128 bits long (as defined by RFC 4291), whereas IPv4 addresses are 32 bits; where the IPv4 address space contains roughly 4 billion addresses, IPv6 has enough room for 3.4×1038 unique addresses.

IPv6 addresses are typically composed of two logical parts: a 64-bit (sub-)network prefix, and a 64-bit host part, which is either automatically generated from the interface's MAC address or assigned sequentially. Because the globally unique MAC addresses offer an opportunity to track user equipment, and so users, across time and IPv6 address changes, RFC 3041 was developed to reduce the prospect of user identity being permanently tied to an IPv6 address, thus restoring some of the possibilities of anonymity existing at IPv4. RFC 3041 specifies a mechanism by which time-varying random bit strings can be used as interface circuit identifiers, replacing unchanging and traceable MAC addresses.

Notation
IPv6 addresses are normally written as eight groups of four hexadecimal digits, where each group is separated by a colon (:). For example, 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 is a valid IPv6 address. If one or more four-digit group(s) is 0000, the zeros may be omitted and replaced with two colons(::). For example, 2001:0db8:0000:0000:0000:0000:1428:57ab can be shortened to 2001:0db8::1428:57ab. Following this rule, any number of consecutive 0000 groups may be reduced to two colons, as long as there is only one double colon used in an address. Leading zeros in a group can also be omitted (as in ::1 for localhost). Thus, the addresses below are all valid and equivalent:
2001:0db8:0000:0000:0000:0000:1428:57ab
2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab
Having more than one double-colon abbreviation in an address is invalid, as it would make the notation ambiguous. i.e., Given 2001:0000:0000:FFD3:0000:0000:0000:57ab, 2001::FFD3::57ab could imply 2001:0000:0000:0000:0000:FFD3:0000:57ab, 2001:0000:FFD3:0000:0000:0000:0000:57ab, or any other similar permutation. A sequence of 4 bytes at the end of an IPv6 address can also be written in decimal, using dots as separators. This notation is often used with compatibility addresses (see below). This addressing scheme is convenient when dealing with the mixed environment of IPv4 and IPv6 addresses. The general notation is of the form x:x:x:x:x:x:d.d.d.d where x's are the 6 higher order hexadecimal digits whereas d's correspond to the decimal digits of lower order 8 bit pieces of address, as it is the IPv4 format. For example, ::ffff:12.34.56.78 is the same address as ::ffff:0c22:384e and 0:0:0:0:0:ffff:0c22:384e. Usage of this notation is deprecated and unsupported by numerous applications. Additional information can be found in RFC 4291 - IP Version 6 Addressing Architecture.

Literal IPv6 addresses in URLs
In a URL the IPv6-Address is enclosed in brackets. Example:
http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7348]/
This notation allows parsing a URL without confusing the IPv6 address and port number:
https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/
This is not only useful but mandated when using shortform:
https://[2001:db8::1428:57ab]:443/
Additional information can be found in "RFC 2732 - Format for Literal IPv6 Addresses in URL's" and "RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax."

Network notation
IPv6 networks are written using CIDR notation. An IPv6 network (or subnet) is a contiguous group of IPv6 addresses the size of which must be a power of two; the initial bits of addresses, which are identical for all hosts in the network, are called the network's prefix. A network is denoted by the first address in the network and the size in bits of the prefix (in decimal), separated with a slash. For example, 2001:0db8:1234::/48 stands for the network with addresses 2001:0db8:1234:0000:0000:0000:0000:0000 through 2001:0db8:1234:ffff:ffff:ffff:ffff:ffff Because a single host can be seen as a network with a 128-bit prefix, you will sometimes see host addresses written followed with /128.

Kinds of IPv6 addresses
IPv6 addresses are divided into 3 categories:
* Unicast Addresses
* Multicast Addresses
* Anycast Addresses
A Unicast address identifies a single network interface. A packet sent to a unicast address is delivered to that specific computer. The following types of addresses are unicast IPv6 addresses:
* Global unicast addresses
* Link-local addresses
* Site-local addresses
* Unique local IPv6 unicast addresses
* Special addresses

Multicast addresses are used to define a set of interfaces that typically belong to different nodes instead of just one. When a packet is sent to a multicast address, the protocol delivers the packet to all interfaces identified by that address. Multicast addresses begin with the prefix FF00::/8, and their second octet identifies the addresses' scope, i.e. the range over which the multicast address is propagated. Commonly used scopes include link-local (0x2), site-local (0x5) and global (0xE).
Anycast addresses are also assigned to more than one interface, belonging to different nodes. However, a packet sent to an anycast address is delivered to just one of the member interfaces, typically the “nearest” according to the routing protocol’s idea of distance. Anycast addresses cannot be identified easily: they have the structure of normal unicast addresses, and differ only by being injected into the routing protocol at multiple points in the network.

Special addresses
There are a number of addresses with special meaning in IPv6:
Link local
* ::/128 — the address with all zeros is an unspecified address, and is to be used only in software.
* ::1/128 — the loopback address is a localhost address. If an application in a host sends packets to this address, the IPv6 stack will loop these packets back to the same host (corresponding to 127.0.0.1 in IPv4).
* fe80::/10 — The link-local prefix specifies that the address only is valid in the local physical link. This is analogous to the Autoconfiguration IP address 169.254.0.0/16 in IPv4.

Site local
* fc00::/7 — unique local addresses (ULA) are routable only within a set of cooperating sites. They were defined in RFC 4193 as a replacement for site-local addresses (see below). The addresses include a 40-bit pseudorandom number that minimizes the risk of conflicts if sites merge or packets somehow leak out.

IPv4
* ::ffff:0:0/96 — this prefix is used for IPv4 mapped addresses (see Transition mechanisms below).
* 2002::/16 — this prefix is used for 6to4 addressing.

Multicast
* ff00::/8 — The multicast prefix is used for multicast addresses as defined by in "IP Version 6 Addressing Architecture" (RFC 4291).
Used in examples, deprecated, or obsolete
* ::/96 — the zero prefix was used for IPv4-compatible addresses; it is now obsolete.
* 2001:db8::/32 — this prefix is used in documentation (RFC 3849). Anywhere where an example IPv6 address is given, addresses from this prefix should be used.
* fec0::/10 — The site-local prefix specifies that the address is valid only inside the local organisation. Its use has been deprecated in September 2004 by RFC 3879 and systems must not support this special type of address.

Teredo
* 2001::/32 — typically used for Teredo_tunneling addresses
There are no address ranges reserved for broadcast in IPv6 — applications use multicast to the all-hosts group instead. IANA maintains the official list of the IPv6 address space. Global unicast assignments can be found at the various RIR's or at the GRH DFP pages.

Zone indices
Link-local addresses present a particular problem for systems with multiple interfaces. Because each interface may be connected to different networks and the addresses all appear to be on the same subnet, an ambiguity arises that cannot be solved by routing tables. For example, host A has two interfaces which automatically receive link-local addresses when activated (per RFC 4862): fe80::1/64 and fe80::2/64, only one of which is connected to the same physical network as host B which has address fe80::3/64; if host A attempts to contact fe80::3 how does it know which interface (fe80::1 or fe80::2) to use?
The solution defined by RFC 4007 is the addition of a unique zone index for the local interface, represented textually in the form
%, for example: http://[fe80::1122:33ff:fe11:2233%eth0]:80/ - this however may cause its own problems because of clashing with the percent-encoding used with URIs.
* Microsoft Windows IPv6 stack uses numeric zone IDs: fe80::3%1
* BSD applications typically use the interface name as a zone ID: fe80::3%pcn0
* Linux applications also typically use the interface name as a zone ID: fe80::3%eth0, although GNU/Linux network interface configuration utilities, such as ifconfig and iproute2, do not display zone IDs.
Relatively few IPv6-capable applications understand zone ID syntax, thus rendering link-local addresses unusable within them if multiple interfaces use link-local addresses.

IPv6 packet
The IPv6 packet is composed of two main parts: the header and the payload. The header is in the first 40 octets (320 bits) of the packet and contains:
* Version - version 6 (4-bit IP version).
* Traffic class - packet priority (8-bits). Priority values are divided into ranges: traffic where the source provides congestion control and non-congestion control traffic.
* Flow label - QoS management (20 bits). Originally created for giving real-time applications special service, but currently unused.
* Payload length - payload length in bytes (16 bits). When cleared to zero, the option is a "Jumbo payload" (hop-by-hop).
* Next header - Specifies the next encapsulated protocol. The values are compatible with those specified for the IPv4 protocol field (8 bits).
* Hop limit - replaces the time to live field of IPv4 (8 bits).
* Source and destination addresses - 128 bits each.
The payload can be up to 64KiB in size in standard mode, or larger with a "jumbo payload" option. Fragmentation is handled only in the sending host in IPv6: routers never fragment a packet, and hosts are expected to use PMTU discovery. The protocol field of IPv4 is replaced with a Next Header field. This field usually specifies the transport layer protocol used by a packet's payload. In the presence of options, however, the Next Header field specifies the presence of an extra options header, which then follows the IPv6 header; the payload's protocol itself is specified in a field of the options header. This insertion of an extra header to carry options is analogous to the handling of AH and ESP in IPsec for both IPv4 and IPv6.

IPv6 and the Domain Name System
IPv6 addresses are represented in the Domain Name System by AAAA records (so-called quad-A records) for forward lookups; reverse lookups take place under ip6.arpa (previously ip6.int), where address space is delegated on nibble boundaries. This scheme, which is a straightforward adaptation of the familiar A record and in-addr.arpa schemes, is defined in RFC 3596. The AAAA scheme was one of two proposals at the time the IPv6 architecture was being designed. The other proposal, designed to facilitate network renumbering, would have had A6 records for the forward lookup and a number of other innovations such as bit-string labels and DNAME records. It is defined in the experimental RFC 2874 and its references (with further discussion of the pros and cons of both schemes in RFC 3364). RFC 3484 specifies how applications should select an IPv6 or IPv4 address for use, including addresses retrieved from DNS.

IPv6 and DNS RFCs
* DNS Extensions to support IP version 6 - RFC 1886
* DNS Extensions to Support IPv6 Address Aggregation and Renumbering - RFC 2874
* Tradeoffs in Domain Name System (DNS) Support for Internet Protocol version 6 (IPv6) - RFC 3364
* Default Address Selection for Internet Protocol version 6 (IPv6) - RFC 3484
* Internet Protocol Version 6 (IPv6) Addressing Architecture - RFC 3513
* DNS Extensions to Support IP Version 6 (Obsoletes 1886 and 3152) - RFC 3596

Transition mechanisms
Until IPv6 completely supplants IPv4, which is not likely to happen in the foreseeable future, a number of so-called transition mechanisms are needed to enable IPv6-only hosts to reach IPv4 services and to allow isolated IPv6 hosts and networks to reach the IPv6 Internet over the IPv4 infrastructure. contains an overview of the transition mechanisms mentioned below.

Dual stack
Since IPv6 is a conservative extension of IPv4, it is relatively easy to write a network stack that supports both IPv4 and IPv6 while sharing most of the code. Such an implementation is called a dual stack, and a host implementing a dual stack is called a dual-stack host. This approach is described in RFC 4213. Most current implementations of IPv6 use a dual stack. Some early experimental implementations used independent IPv4 and IPv6 stacks. There are no known implementations that implement IPv6 only.

Tunneling
In order to reach the IPv6 Internet, an isolated host or network must be able to use the existing IPv4 infrastructure to carry IPv6 packets. This is done using a technique known as tunneling which consists of encapsulating IPv6 packets within IPv4, in effect using IPv4 as a link layer for IPv6. IPv6 packets can be directly encapsulated within IPv4 packets using protocol number 41. They can also be encapsulated within UDP packets e.g. in order to cross a router or NAT device that blocks protocol 41 traffic. They can of course also use generic encapsulation schemes, such as AYIYA or GRE.

Automatic tunneling
Automatic tunneling refers to a technique where the tunnel endpoints are automatically determined by the routing infrastructure. The recommended technique for automatic tunneling is 6to4 tunneling, which uses protocol 41 encapsulation. Tunnel endpoints are determined by using a well-known IPv4 anycast address on the remote side, and embedding IPv4 address information within IPv6 addresses on the local side. 6to4 is widely deployed today. Another automatic tunneling mechanism is ISATAP. This protocol treats the IPv4 network as a virtual IPv6 local link, with mappings from each IPv4 address to a link-local IPv6 address. Teredo is an automatic tunneling technique that uses UDP encapsulation and is claimed to be able to cross multiple NAT boxes. Teredo is not widely deployed today, but an experimental version of Teredo is installed with the Windows XP SP2 IPv6 stack. IPv6, 6to4 and Teredo are enabled by default in Windows Vista and Mac OS X Leopard and Apple's AirPort Extreme.

Configured tunneling
Configured tunneling is a technique where the tunnel endpoints are configured explicitly, either by a human operator or by an automatic service known as a tunnel broker. Configured tunneling is usually more deterministic and easier to debug than automatic tunneling, and is therefore recommended for large, well-administered networks. Configured tunneling uses protocol 41 in the Protocol field of the IPv4 packet. This method is also better known as 6in4.

Proxying and translation
When an IPv6-only host needs to access an IPv4-only service (for example a web server), some form of translation is necessary. One form of translation is the use of a dual-stack application-layer proxy, for example a web proxy. NAT-like techniques for application-agnostic translation at the lower layers have also been proposed. Most have been found to be too unreliable in practice because of the wide range of functionality required by common application-layer protocols, and are considered by many to be obsolete.

Major IPv6 announcements and availability
Year Announcements and availability
1996 Linux gains alpha quality IPv6 support in kernel development version 2.1.8.
1997 In the end of 1997, a large number of implementations existed and were interoperable. In the end of 1997 IBM's AIX 4.3 was the first commercial platform that supported IPv6.
1998 Microsoft Research first released an experimental IPv6 stack in 1998. This support was not intended for use in a production environment.
2000 Production-quality BSD support for IPv6 has been generally available since early to mid-2000 in FreeBSD, OpenBSD, and NetBSD via the KAME project. Sun Solaris has IPv6 support since Solaris 8 in February 2000.
2001 Cisco Systems introduced IPv6 support on Cisco IOS routers and L3 switches in 2001.
2002 Microsoft Windows NT 4.0 and Windows 2000 SP1 had limited IPv6 support for research and testing since at least 2002. Microsoft Windows XP (2001) had IPv6 support for developmental purposes. In Windows XP SP1 (2002) and Windows Server 2003, IPv6 is included as a core networking technology, suitable for commercial deployment. IBM z/OS has supported IPv6 since version 1.4 that has been generally available since September 2002.
2003 Apple Mac OS X v10.3 "Panther" (2003) has IPv6 supported and enabled by default. In July, ICANN announced that the IPv6 AAAA records for the Japan (.jp) and Korea (.kr) country code Top Level Domain (ccTLD) nameservers became visible in the DNS root server zone files with serial number 2004072000. The IPv6 records for France (.fr) were added a little later. This made IPv6 operational in a public fashion.
2007 Microsoft Windows Vista (2007) has IPv6 supported and enabled by default. Apple's AirPort Extreme 802.11n base station is an IPv6 gateway in its default configuration. It uses 6to4 tunneling and can optionally route through a manually configured IPv4 tunnel.
2008 On February 4th 2008, IANA added AAAA records for the IPv6 addresses of six of the thirteen root name servers. With this transition, it is now possible for two internet hosts to communicate via DNS without using IPv4 at all. On March 12th, 2008, Google launched an IPv6 version of www.google.com, the most visited page on the Internet, under an alternative host name (ipv6.google.com).

Disabling
Some mis-managed networks have good IPv4 connectivity, but poor (but existent) IPv6 connectivity. Some users on such networks prefer to disable IPv6 functionality in their operating system.
* Disable IPV6 for Ubuntu
* Disable IPV6 for Firefox
* Disable IPV6 for Windows Vista/2008

Baca Selanjutnya - IPV6

Selasa, April 15, 2008

Pascal (programming language) 0

Pascal is an influential imperative and procedural programming language, developed in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using so called structured programming and data structuring. A derivative known as Object Pascal was designed for object oriented programming.

History
Pascal is based on the ALGOL programming language and named in honor of the French mathematician and philosopher Blaise Pascal. Wirth subsequently developed the Modula-2 and Oberon, languages similar to Pascal, and earlier, also the language Euler. Initially, Pascal was a language intended to teach students structured programming, and generations of students have "cut their teeth" on Pascal as an introductory language in undergraduate courses. Variants of Pascal are still widely used today, for example Free Pascal can be used in both 32 and 64 bit formats, and all types of Pascal programs can be used for both education and software development.

Examples of usage
Pascal was the primary high-level language used for development in the Apple Lisa, and in the early years of the Mac; parts of the original Macintosh operating system were hand-translated into Motorola 68000 assembly language from the Pascal sources. The popular typesetting system TeX by Donald E. Knuth was written in WEB, the original literate programming system, based on traditional Pascal, while an application like Total Commander was written in Delphi (i.e. Object Pascal).

Brief description
Wirth's intention was to create an efficient language (regarding both compilation speed and generated code) based on so-called structured programming, a concept which had recently become popular. Pascal has its roots in the Algol 60 language, but also introduced concepts and mechanisms which (on top of Algol's scalars and arrays) enabled the programmer to define his or her own complex (structured) datatypes, and also made it easier to build dynamic and recursive data structures such as lists, trees and graphs. Important features included for this were records, enumerations, subranges, dynamically allocated variables with associated pointers, and sets. To make this possible and meaningful, Pascal has a strong typing on all objects, which means that one type of data cannot be converted or interpreted as another without explicit conversions. Similar mechanisms are standard in many programming languages today. Other languages that influenced Pascal's development were COBOL, ALGOL 68, Simula 67, and Wirth's own Algol-W. Pascal, like many scripting languages of today (but unlike most languages in the C-family), allows nested procedure definitions to any level of depth, and also allows most kinds of definitions and declarations inside procedures and functions. This enables a very simple and coherent syntax where a complete program (or unit) is syntactically nearly identical to a single procedure or function (except for the keyword itself, of course).

Implementations
The first Pascal compiler was designed in Zurich for the CDC 6000 series mainframe computer family. Niklaus Wirth reports that a first attempt to implement it in Fortran in 1969 was unsuccessful due to Fortran's inadequacy to express complex data structures. The second attempt was formulated in the Pascal language itself and was operational by mid-1970. Many Pascal compilers since have been similarly self-hosting, that is, the compiler is itself written in Pascal, and the compiler is usually capable of recompiling itself when new features are added to the language, or when the compiler is to be ported to a new environment. The GNU Pascal compiler is one notable exception, being written in C. The first successful port of the CDC Pascal compiler to another mainframe was completed by Welsh and Quinn at the Queen's University of Belfast in 1972. The target was the ICL 1900 computer. The first Pascal compiler written in North America was constructed at the University of Illinois under Donald B. Gillies for the PDP-11 and generated native machine code. Pascal enjoyed great popularity throughout the 1970s and the 1980s. In order to rapidly propagate the language, a compiler "porting kit" was created in Zurich that included a compiler that generated code for a "virtual" stack machine (i.e. code that lends itself to reasonably efficient interpretation), along with an interpreter for that code - the p-code system. Although the p-code was primarily intended to be compiled into true machine code, at least one system, the notable UCSD implementation, utilized it to create the interpretive UCSD p-System. The P-system compilers were termed P1-P4, with P1 being the first version, and P4 being the last. A version of the P4 compiler, which created native binaries, was released for the IBM System/370 mainframe computer by the Australian Atomic Energy Commission; it was called the "AAEC Pascal Compiler" after the abbreviation of the name of the Commission. A version of P4 from 1975-6 (based on its internal code, it probably should be called "P5") including source and binaries for the compiler and run-time library files for the PDP-10 mainframe may be downloaded from this link.

In the early 1980s, Watcom Pascal was developed, also for the IBM System 370. IP Pascal was an implementation of the Pascal programming language using Micropolis DOS, but was moved rapidly to CP/M running on the Z80. It was moved to the 80386 machine types in 1994, and exists today as Windows/XP and Linux implementations. In the early 1980s, UCSD Pascal was ported to the Apple II and Apple III computers to provide a structured alternative to the BASIC interpreters that came with the machines. Apple Computer created its own Lisa Pascal for the Lisa Workshop in 1982 and ported this compiler to the Apple Macintosh and MPW in 1985. In 1985 Larry Tesler, in consultation with Niklaus Wirth, defined Object Pascal and these extensions were incorporated in both the Lisa Pascal and Mac Pascal compilers. In the 1980s Anders Hejlsberg wrote the Blue Label Pascal compiler for the Nascom-2. A reimplementation of this compiler for the IBM PC was marketed under the names Compas Pascal and PolyPascal before it was acquired by Borland. Renamed to Turbo Pascal it became hugely popular, thanks in part to an aggressive pricing strategy and in part to having one of the first full-screen Integrated development environments. Additionally, it was written and highly optimized entirely in assembly language, making it smaller and faster than much of the competition. In 1986 Anders ported Turbo Pascal to the Macintosh and incorporated Apple's Object Pascal extensions into Turbo Pascal. These extensions were then added back into the PC version of Turbo Pascal for version 5.5. The inexpensive Borland compiler had a large influence on the Pascal community that began concentrating mainly on the IBM PC in the late 1980s. Many PC hobbyists in search of a structured replacement for BASIC used this product. It also began adoption by professional developers. Around the same time a number of concepts were imported from C in order to let Pascal programmers use the C-based API of Microsoft Windows directly. These extensions included null-terminated strings, pointer arithmetic, function pointers, an address-of operator and unsafe typecasts.

However, Borland later decided it wanted more elaborate object-oriented features, and started over in Delphi using the Object Pascal draft standard proposed by Apple as a basis. (This Apple draft is still not a formal standard.) Borland also called this Object Pascal in the first Delphi versions, but changed the name to Delphi Programming Language in later versions. The main additions compared to the older OOP extensions were a reference-based object model, virtual constructors and destructors, and properties. There are several other compilers implementing this dialect, see Object Pascal. Turbo Pascal, and other derivatives with units or module concepts are modular languages. However, it does not provide a nested module concept or qualified import and export of specific symbols. Super Pascal was a variant which added non-numeric labels, a return statement and expressions as names of types. The universities of Zurich, Karlsruhe and Wuppertal have developed an EXtension for Scientific Computing (Pascal XSC), which provides a free solution for programming numerical computations with controlled precision. In 2005, at the Web 2.0 conference, Morfik Technology introduced a tool which allowed the development of Web applications entirely written in Morfik Pascal. Morfik Pascal is a dialect of Object Pascal, very close to Delphi.

Language constructs
Pascal, in its original form, is a purely procedural language and includes the traditional array of Algol-like control structures with reserved words such as if, then, else, while, for, and so on. However, Pascal also has many data structuring facilities and other abstractions which were not included in the original Algol60, like type definitions, records, pointers, enumerations, and sets. Such constructs were in part inherited or inspired from Simula67, Algol68, Niklaus Wirth's own AlgolW and suggestions by C. A. R. Hoare.

Hello world
Pascal programs start with the program keyword with a list of external file descriptors as parameters; then follows the main statement block encapsulated by the begin and end keywords. Semicolons separate statements, and the full stop ends the whole program (or unit). Letter case is ignored in Pascal source. Some compilers, Turbo Pascal among them, have made the program keyword optional.
Here is an example of the source code in use for a very simple program:
Program HelloWorld(output);
begin
writeLn('Hello, World!');
readLn;
end.

Data structures
Pascal's simple (atomic) types are real, integer, character, boolean and enumerations, a new type constructor introduced with Pascal:
var
r: Real;
i: Integer;
c: Char;
b: Boolean;
e: (apple, pear, banana, orange, lemon);

Subranges of any ordinal type (any simple type except real) can be made:
var
x: 1..10;
y: 'a'..'z';
z: pear..orange;

In contrast with other programming languages Pascal supports set type:
var
set1: set of 1..10;
set2: set of 'a'..'z';
set3: set of pear..orange;

A set is fundamental concept for modern mathematics, and many algorithms are defined with sets usage. So, an implementation of such algorithm is very suitable for Pascal. Also, set's operations may be realized faster. For example, for many Pascal compilers:
if i in [5..10] then
...
is faster, than
if (i>4) and (i<11) x =" Integer;" y =" x;" a =" Array" b =" record" c =" File" style="font-weight: bold;">Pointers
Pascal supports the use of pointers:
type
a = ^b;
b = record
x: Integer;
y: Char;
z: a
end;
var
pointer_to_b: a;
Here the variable pointer_to_b is a pointer to the data type b, a record. Pointers can be used before they are declared. This is an exception to the rule that things must be declared before they are used. To create a new record and assign the values 10 and A to the fields a and b in the record, the commands would be:
new(pointer_to_b);
pointer_to_b^.x := 10;
pointer_to_b^.y := 'A';
pointer_to_b^.z := nil;
...

This could also be done using the with statement, as follows
new(pointer_to_b);
with pointer_to_b^ do
begin
x := 10;
y := 'A';
z := nil
end;
...
Note that inside of the scope of the with statement, the compiler knows that a and b refer to the subfields of the record pointer pointer_to_b and not to the record b or the pointer type a. Linked lists, stacks and queues can be created by including a pointer type field (c) in the record (see also nil and null (computer programming)).

Control structures
Pascal is a structured programming language, meaning that the flow of control is structured into standard statements, ideally without 'go to' commands.
while a <> b do
writeln('Waiting');
if a > b then
writeln('Condition met')
else
writeln('Condition false');
for i := 1 to 10 do
writeln('Iteration: ', i:1);
repeat
a := a + 1
until a = 10;

Procedures and functions
Pascal structures programs into procedures and functions.
program mine;
uses wincrt;

var i : integer;
procedure print(var j: integer);
function next(k: integer): integer;
begin
next := k + 1
end;
begin
writeln('The total is: ', j);
j := next(j)
end;
begin
i := 1;
while i <= 10 do print(i) end. Procedures and functions can nest to any depth, and the 'program' construct is the logical outermost block. Each procedure or function can have its own declarations of goto labels, constants, types, variables, and other procedures and functions, which must all be in that order. This ordering requirement was originally intended to allow efficient single-pass compilation. However, in some dialects the strict ordering requirement of declaration sections is not required. Several Pascal compilers and interpreters are available for the use of general public: * Delphi is Borland's flagship RAD (Rapid Application Development) product. It uses the Object Pascal language (Dubbed the 'Delphi programming language' by Borland), descended from Pascal, to create applications for the windows platform. The latest versions 2005 and 2006 also support compiling to the .NET platform. A version of Delphi, Turbo Delphi Explorer, is available for free download. * Free Pascal (www.freepascal.org) is a multi-platform compiler written in Pascal (it is Self-hosting). It is aimed at providing a convenient and powerful compiler, both able to compile legacy applications and to be the means of developing new ones. It is distributed under the GNU GPL. Apart from compatibility modes for Turbo Pascal, Delphi and Mac Pascal, it also has its own procedural and object oriented syntax modes with support for extended features such as operator overloading. It supports many platforms and operating systems. * Dev-Pascal (Dev-Pascal) is a Pascal IDE that was designed in Borland Delphi and which supports both Free Pascal and GNU Pascal as backend. Contrary to its C++ sibling, it has not seen a significant release in years * Chrome is a Next Generation Object Pascal compiler for the .NET and Mono Platforms. It was created and is sold by RemObjects Software. * Kylix was a descendant of Delphi, with support for the Linux operating system and an improved object library. The compiler and the IDE are available now for non-commercial use. The product is no longer supported by Borland. * GNU Pascal Compiler (GPC) is the Pascal compiler of the GNU Compiler Collection (GCC). The compiler itself is written in C, the runtime library mostly in Pascal. Distributed freely under the GNU General Public License, it runs on many platforms and operating systems. It supports the ANSI/ISO standard languages and partial Borland/Turbo Pascal language support. One of the more painful omissions is the absence of a 100% TP compatible string type. Support for Borland Delphi and other language variations is quite limited, except maybe for Mac Pascal, the support for which is growing fast. * Virtual Pascal was created by Vitaly Miryanov in 1995 as a native OS/2 compiler compatible with Borland Pascal syntax. Then, it had been commercially developed by fPrint, adding Win32 support, and in 2000 it became freeware. Today it can compile for Win32, OS/2 and Linux, and is mostly compatible with Borland Pascal and Delphi. Development on this compiler was canceled on April 4, 2005. * P4 compiler, the basis for many subsequent Pascal-implemented-in-Pascal compilers, including the UCSD p-System. * Turbo Pascal was the dominant Pascal compiler for PCs during the 80s and early 90s, popular both because of its powerful extensions and extremely low compilation times. Turbo Pascal was compactly written and could compile, run, and debug all from memory without accessing disk. Slow floppy disk drives were common for programmers at the time, further magnifying Turbo Pascal's speed advantage. Currently, older versions of Turbo Pascal (up to 5.5) are available for free download from Borland's site. * Dr. Pascal is an interpreter that runs Standard Pascal. Notable are the "visible execution" mode that shows a running program and its variables, and the extensive runtime error checking. Runs programs but does not produce a separate executable binary. Runs on MS-DOS, Windows in DOS window, and old Macintosh. * Dr. Pascal's Extended Pascal Compiler tested on DOS, Windows 3.1, 95, 98, NT. * IP Pascal Originally a Z80/CP/M Pascal that was ported and recoded for Intel 80386/PC, IP Pascal has a built-in portability library that is custom tailored to the Pascal language. For example, a standard text output application from 1970's original Pascal can be recompiled to work in a window and even have graphical constructs added. IP Pascal supports the ISO 7185 standard and upgrades the language logically. For example, original Pascal "padded right" strings are supported and integrated upwards seamlessly into dynamic strings. Standard Pascal static arrays are enhanced with dynamic arrays which are fully downward compatible with static arrays, etc. * Pocket Studio is a Pascal subset compiler/RAD targeting Palm / MC68xxx with some own extensions to assist interfacing with the Palm OS API. * MIDletPascal - A Pascal compiler and IDE that generates small and fast Java bytecode specifically designed to create software for mobiles * Vector Pascal Vector Pascal is a language targeted at SIMD instruction sets such as the MMX and the AMD 3d Now, supporting all Intel and AMD processors, as well as the Sony Playstation 2 Emotion Engine. * Morfik Pascal allows the development of Web applications entirely written in Object Pascal (both server and browser side). * web Pascal (www.codeide.com) is an online IDE and Pascal compiler. * WDSibyl - Visual Development Environment and Pascal compiler for Win32 and OS/2 A very extensive list can be found on Pascaland. The site is in French, but it is basically a list with URLs to compilers; there is little barrier for non-Francophones. The site, Pascal Central, a Mac centric Pascal info and advocacy site with a rich collection of article archives, plus links to many compilers and tutorials, may also be of interest. Standards
In 1983, the language was standardized, in the international standard ISO/IEC 7185, as well as several local country specific standards, including the American ANSI/IEEE770X3.97-1983, and ISO 7185:1983. These two standards differed only in that the ISO standard included a "level 1" extension for conformant arrays, where ANSI did not allow for this extension to the original (Wirth version) language. In 1989, ISO 7185 was revised (ISO 7185:1990) to correct various errors and ambiguities found in the original document. In 1990, an extended Pascal standard was created as ISO/IEC 10206. In 1993 the ANSI standard was replaced by the ANSI organization with a "pointer" to the ISO 7185:1990 standard, effectively ending its status as a different standard. The ISO 7185 was stated to be a clarification of Wirth's 1974 language as detailed by the User Manual and Report [Jensen and Wirth], but was also notable for adding "Conformant Array Parameters" as a level 1 to the standard, level 0 being Pascal without Conformant Arrays. Note that Niklaus Wirth himself referred to the 1974 language as "the Standard", for example, to differentiate it from the machine specific features of the CDC 6000 compiler. This language was documented in "The Pascal Report", the second part of the "Pascal users manual and report". On the large machines (mainframes and minicomputers) Pascal originated on, the standards were generally followed. On the IBM-PC, they were not. On IBM-PCs, the Borland standards Turbo Pascal and Delphi have the greatest number of users. Thus, it is typically important to understand whether a particular implementation corresponds to the original Pascal language, or a Borland dialect of it. The IBM-PC versions of the language began to differ with the advent of UCSD Pascal, an interpreted implementation that featured several extensions to the language, along with several omissions and changes. Many UCSD language features survive today, including in Borlands dielect.

Divisions
Niklaus Wirth's Zurich version of Pascal was issued outside of ETH in two basic forms, the CDC 6000 compiler source, and a porting kit called Pascal-P system. The Pascal-P compiler left out several features of the full language. For example, procedures and functions used as parameters, undiscriminated variant records, packing, dispose, interprocedural gotos and other features of the full compiler were omitted. UCSD Pascal, under Professor Kenneth Bowles, was based on the Pascal-P2 kit, and consequently shared several of the Pascal-P language restrictions. UCSD Pascal was later adopted as Apple Pascal, and continued through several versions there. Borland's Turbo Pascal, written by Anders Hejlsberg was written in assembly language independent of UCSD or the Zurich compilers. However, it adopted much of the same subset and extensions as the UCSD compiler. This is probably because the UCSD system was the most common Pascal system suitable for developing applications on the resource-limited microprocessor systems available at that time.

Reception
Pascal generated a wide variety of responses in the computing community, both critical and complimentary.

Criticism
While very popular (although more so in the 1980s and early 1990s than now), early versions of Pascal have been widely criticized for being unsuitable for "serious" use outside of teaching. Brian Kernighan, famed popularizer of the C programming language, outlined his most notable criticisms of Pascal as early as 1981, in his paper Why Pascal Is Not My Favorite Programming Language. On the other hand, many major development efforts in the 1980s, such as for the Apple Lisa and Macintosh, heavily depended on Pascal (to the point where the C interface for the Macintosh operating system API had to deal in Pascal data types). In the decades since then, Pascal has continued to evolve and most of Kernighan's points do not apply to current implementations. Unfortunately, just as Kernighan predicted in his article, most of the extensions to fix these issues were incompatible from compiler to compiler. In the last decade, however, the varieties seem to have condensed into two categories, ISO and Borland like, a better eventual outcome than Kernighan foresaw. Although Kernighan decried Pascal's lack of type escapes ("there is no escape" from "Why Pascal is not my Favorite Programming language"), the uncontrolled use of pointers and type escapes have become highly criticized features in their own right, and the languages Java, C# and others feature a sharp turn-around to the Pascal point of view. What these languages call "managed pointers" were in fact foreseen by Wirth with the creation of Pascal. Based on his experience with Pascal (and earlier with ALGOL) Niklaus Wirth developed several more programming languages: Modula, Modula-2 and Oberon. These languages address some criticisms of Pascal, are intended for different user populations, and so on, but none has had the widespread impact on computer science and computer users as has Pascal, nor has any yet met with similar commercial success.

Baca Selanjutnya - Pascal (programming language)

Subnetwork 0

In computer networks that use the Internet Protocol, a subnetwork or subnet is a range of logical addresses within the address space that is assigned to an organization. The address to all nodes in a subnet starts with the same binary sequence, which is its network ID and subnet ID. In IPv4, the subnet is identified by its base address and subnet mask. The CIDR-style suffix notation (e.g., /24) is functionally equivalent to a subnet mask, and generally easier to understand. For example, suppose a home network consists of computers named Foo and Bar, connected to a router, and then via a cable modem to the Internet. The home network is configured as a subnet. Address 17.76.99.1 is assigned to Foo, and 17.76.99.2 to Bar. The subnet has been configured so that the first three bytes of its members' addresses are all the same subnet id, 17.76.99, and this fact is expressed by the subnet mask 255.255.255.0 (binary 11111111 11111111 11111111 00000000) configured in the router. When Foo sends data to amazon.com at 72.21.210.11, the router ANDs the address with the subnet mask, recognizes that the first three bytes of the address are not within its subnet, and sends the data over the Internet. When Foo sends data to Bar, however, the router determines that the destination lies within the subnet. The data are transmitted by broadcasting within the home network, with each machine being responsible for discarding data that were not addressed to it. In a large organization, the amount of broadcasted data would become unmanageable if every computer received broadcasts from every other computer. For this reason, subnetting can be hierarchical, with the network address space of the organization (and of the network nodes of an autonomous system) partitioned into several subnets. Routers constitute borders between subnets. Communication to and from a subnet is mediated by one specific port of one specific router, at least momentarily. Communication is on a broadcast basis only within the smallest subnet.

A typical subnet is a physical network served by one router, for instance an Ethernet network (consisting of one or several Ethernet segments or local area networks, interconnected by network switches and network bridges) or a Virtual Local Area Network (VLAN). However, subnetting allows the network to be logically divided regardless of the physical layout of a network, since it is possible to divide a physical network into several subnets by configuring different host computers to use different routers. Subnetting simplifies routing, since each locally connected subnet is typically represented by one row in the routing tables in each connected router. More distant sets of contiguous subnets are more likely to be represented by a row of the routing table that corresponds to the aggregated block. Subnetting was originally introduced before the introduction of classful network addresses in IPv4, to allow a single larger network to have a number of smaller networks within it, controlled by several routers. Subnetting made Classless Inter-Domain Routing possible. In order for computers to communicate in a routing domain with one or many subnets, they will all need their own IP address. However, if you need more than one logical block of addresses, subnetting provides the ability to easily divide one IP address range amongst all the hosts in your network. Subnetting is used in IP networks to break up larger network suffixes into a smaller network. Subnetting involves manually calculating the bits of an IP address and taking them from the host side of bits and adding them to the routing suffix side.

Network address and logical address
The term network address sometimes refers to logical address, i.e. network layer address such as the IP address, and sometimes to the first address (the base address) of a classful address range to an organization. Computers and devices that are part of an internetworking network such as the Internet all have a logical address. The network address is unique to that device and can either be dynamically or statically configured. This address allows the device to communicate with other devices connected to the network. The most common network addressing scheme is IPv4. An IPv4 address consists of a 32 bit address written, for human readability, into 4 octets and a subnet mask of like size and notation. In order to facilitate the routing process the address is divided into two pieces: 1) The network suffix length that is significant for routing decisions at that particular topological point, and 2) The remaining bits that make up the host portion of the address. A host address is meaningful only when on the subnet where that host resides. This works much like a postal address where the higher order part of the network suffix (e.g., /18) would represent the city, the full suffix (e.g., /26) and the host address (i.e., the remaining six bits) would represent the address of a specific house on that street. The subnet mask or CIDR suffix address is used in conjunction with the network address to determine which part of the address is the network address and which part is the host address.

Binary subnet masks
While subnet masks are often represented in dot-decimal form, their use becomes clearer in binary. Looking at a network address and a subnet mask in binary, a device can determine which part of the address is the network address and which part is the host address. To do this, it performs a bitwise "AND" operation.

Subnet masks consist of 32 bits, a block of 1s followed by a block of 0s. The 1s designate that part of the address as being part of the network portion and the 0s designate that part as being part of the host address. Subnet masks do not have to fill a given octet. This allows a classful network to be broken down into subnets. A classful network is a network that has a subnet mask of 255.0.0.0, 255.255.0.0 or 255.255.255.0. Subnet masks can also be expressed in a shorter form, known as Classless Inter-Domain Routing (CIDR) notation, which gives the network number followed by a slash ("/") and the number of 'one' bits in the binary notation of the netmask (i.e. the number of relevant bits in the network number). For example, 192.0.2.96/24 indicates an IP address where the first 24 bits are used as network address (same as 255.255.255.0).

IPv4 classes
IPv4 addresses are broken down into three parts: the network part, the subnet part (now often considered part of the network part, although originally it was part of the rest part), and the host part. Even though classful networks are obsolete, both classful and classless networks are shown in the following table.
Class Leading bits Start End Default Subnet Mask in dotted decimal
A (CIDR /8) 0 0.0.0.0 126.255.255.255 255.0.0.0
B (CIDR /16) 10 128.0.0.0 191.255.255.255 255.255.0.0
C (CIDR /24) 110 192.0.0.0 223.255.255.255 255.255.255.0
D 1110 224.0.0.0 239.255.255.255
E 1111 240.0.0.0 255.255.255.0
The 127.0.0.0/8 network is left out because it is designated for loopback and cannot be assigned to a network.
Class D multicasting
Class E reserved
Subnetting is the process of allocating bits from the host portion as a network portion. The above example shows the bitwise "AND" process being performed on a classful network. The following example shows bits being borrowed to turn a classful network into a subnet.

In this example two bits were borrowed from the original host portion. This is beneficial because it allows a single network portion to be split into several smaller network portions. By design IPv4 addresses are limited in number and each classful network portion is capable of supporting a finite number of hosts. A /24 suffix, such as a classful C block, for example has space for 254 hosts. If a network were to be split into four parts using a classful suffix, four different /24 addresses would have to be used to serve those networks. Using the subnetting example above, if each subnetwork were to have 62 hosts or less (see below for maths), a single /24 suffix could be split up to service the entire network while wasting the fewest host addresses.

Subnets and host count
It is possible to determine the number of hosts and subnetworks available for any subnet mask. In the above example two bits were borrowed to create subnetworks. Each bit can take the value 1 or 0, giving 4 possible subnets (22 = 4)

Network Network (binary) Broadcast address
192.168.5.0/26 11000000.10101000.00000101.00000000 192.168.5.63
192.168.5.64/26 11000000.10101000.00000101.01000000 192.168.5.127
192.168.5.128/26 11000000.10101000.00000101.10000000 192.168.5.191
192.168.5.192/26 11000000.10101000.00000101.11000000 192.168.5.255

According to the RFC 950 standard the subnet values consisting of all zeros and all ones are reserved, reducing the number of available subnets by 2. However due to the inefficiencies introduced by this convention it is no longer used on the public Internet, and is only relevant when dealing with some legacy equipment that does not understand CIDR. The only reason not to use the all-zeroes subnet is that it is ambiguous when the exact suffix length is not available. All CIDR-compliant routing protocols transmit both length and suffix. See RFC 1878 for a subnetting table with extensive examples. The remaining bits after the subnet are used for addressing hosts within the subnet. In the above example the subnet mask consists of 26 bits, leaving 6 bits for the address (32 − 26). This allows for 64 possible combinations (26), however the all zeros value and all ones value are reserved for the network ID and broadcast address respectively, leaving 62 addresses. In general the number of available hosts on a subnet can be calculated using the formula 2n − 2, where n is the number of bits used for the host portion of the address.
RFC 3021 specifies an exception to this rule when dealing with 31 bit subnet masks (i.e. 1 host bit). According to the above rule a 31 bit mask would allow for 21 − 2 = 0 hosts. The RFC makes allowances in this case for certain types of networks (point-to-point) to disregard the network and broadcast address, allowing two host addresses to be allocated.

Baca Selanjutnya - Subnetwork

World Wide Web 0

World Wide Web was the world's first Web browser and WYSIWYG HTML editor and was introduced on February 26, 1991 by Tim Berners-Lee and ran on the NeXTSTEP platform. It was later renamed Nexus to avoid confusion with the World Wide Web. WorldWideWeb (WWW) was the first program which used not only the common File Transfer Protocol but also the Hypertext Transfer Protocol, invented by Berners-Lee in 1989. At the time it was written, WorldWideWeb was the only way to view the Web. The source code was released into the public domain in 1993, thus making it free software.

History
A NeXT Computer was used by Berners-Lee as the world's first web server and also to write the first web browser, WorldWideWeb during the second half of 1990 while working for CERN. The first successful build was completed on Christmas Day, 1990, and successive builds circulated among Berners-Lee's colleagues at CERN before being released to the public (by way of Internet newsgroups) in August 1991. By this time, several others, including Bernd Pollermann, Robert Cailliau, Jean-François Groff, and graduate student Nicola Pellow (who wrote the line-mode browser), were involved in the project. Berners-Lee and Groff later adapted many of WorldWideWeb's components into a C programming language version, creating the libwww API. A number of early browsers appeared, notably ViolaWWW. They were all eclipsed by Mosaic in terms of popularity, which by 1993, had replaced the WorldWideWeb program. Those involved in its creation had moved on to other tasks, such as defining standards and guidelines for the further development of the World Wide Web—e.g. HTML, various communication protocols, and so on. On April 30, 1993, the CERN directorate released the source code of WorldWideWeb into the public domain, making it free software. Several versions of the software are still available to download from evolt.org's browser archive. Berners-Lee initially considered releasing it under the GNU General Public License, but eventually opted for public domain to maximise corporate support.

Technical information
Since WorldWideWeb was developed on and for the NeXTSTEP platform, the program used many of NeXTSTEP's components—WorldWideWeb's layout engine was built around NeXTSTEP's Text class.

Features
WorldWideWeb was capable of displaying basic style sheets, downloading and opening any file type supported by the NeXT system (which included PostScript, movies, sounds, and so on), browsing newsgroups, and spellchecking. At first, images were displayed in separate windows, until NeXTSTEP's Text class supported Image objects. The browser was also an editor. It allowed the simultaneous editing and linking of many pages in different windows. The functions "Mark Selection", which created an anchor, and "Link to Marked", which made the selected text an anchor linking to the last marked anchor, allowed the creation of links. Editing pages remotely was not yet possible, as the HTTP PUT method had not yet been implemented. Files would be edited in a local file system which was in turn served onto the web by an HTTP server. WorldWideWeb's navigation panel contained Next and Previous buttons that would automatically navigate to the next or previous link on the last page visited; i.e., if one navigated to a page from a table of links, the Previous button would cause the browser to load the previous page linked in the table. This was useful for web pages which contained lists of links. Many still do, but the user interface link-chaining was not adopted by other browser writers, and it disappeared. An equivalent functionality is nowadays provided by connecting webpages with explicit navigation buttons repeated on each webpage among those links. This places more of a burden on web site designers and developers, but allows them to control the presentation of the navigation.

Baca Selanjutnya - World Wide Web

Web Browser 0

A web browser is a software application which enables a user to display and interact with text, images, videos, music and other information typically located on a Web page at a website on the World Wide Web or a local area network. Text and images on a Web page can contain hyperlinks to other Web pages at the same or different website. Web browsers allow a user to quickly and easily access information provided on many Web pages at many websites by traversing these links. Web browsers format HTML information for display, so the appearance of a Web page may differ between browsers. Some of the Web browsers available for personal computers include Internet Explorer, Mozilla Firefox, Safari, Opera, and Flock, in order of descending popularity (in March 2008). Web browsers are the most commonly used type of HTTP user agent. Although browsers are typically used to access the World Wide Web, they can also be used to access information provided by Web servers in private networks or content in file systems.

Protocols and standards
Web browsers communicate with Web servers primarily using HTTP (hypertext transfer protocol) to fetch webpages. HTTP allows Web browsers to submit information to Web servers as well as fetch Web pages from them. The most commonly used HTTP is HTTP/1.1, which is fully defined in RFC 2616. HTTP/1.1 has its own required standards that Internet Explorer does not fully support, but most other current-generation Web browsers do. Pages are located by means of a URL (uniform resource locator, RFC 1738 ), which is treated as an address, beginning with http: for HTTP access. Many browsers also support a variety of other URL types and their corresponding protocols, such as gopher: for Gopher (a hierarchical hyperlinking protocol), ftp: for FTP (file transfer protocol), rtsp: for RTSP (real-time streaming protocol), and https: for HTTPS (an SSL encrypted version of HTTP). The file format for a Web page is usually HTML (hyper-text markup language) and is identified in the HTTP protocol using a MIME content type. Most browsers natively support a variety of formats in addition to HTML, such as the JPEG, PNG and GIF image formats, and can be extended to support more through the use of plugins. The combination of HTTP content type and URL protocol specification allows Web page designers to embed images, animations, video, sound, and streaming media into a Web page, or to make them accessible through the Web page. Early Web browsers supported only a very simple version of HTML. The rapid development of proprietary Web browsers led to the development of non-standard dialects of HTML, leading to problems with Web interoperability. Modern Web browsers support a combination of standards- and defacto-based HTML and XHTML, which should display in the same way across all browsers. No browser fully supports HTML 4.01, XHTML 1.x or CSS 2.1 yet. Currently many sites are designed using WYSIWYG HTML generation programs such as Adobe Dreamweaver or Microsoft FrontPage. Microsoft FrontPage often generates non-standard HTML by default, hindering the work of the W3C in developing standards, specifically with XHTML and CSS (cascading style sheets, used for page layout). Dreamweaver and other more modern Microsoft HTML development tools such as Microsoft Expression Web and Microsoft Visual Studio conform to the W3C standards. Some of the more popular browsers include additional components to support Usenet news, IRC (Internet relay chat), and e-mail. Protocols supported may include NNTP (network news transfer protocol), SMTP (simple mail transfer protocol), IMAP (Internet message access protocol), and POP (post office protocol). These browsers are often referred to as Internet suites or application suites rather than merely Web browsers.

History
One important person in the early design and evolution of the browser was Neil Larson who in 1977 created a TRS-80 program that displayed outlines a level at a time with hypertext jumps between levels. In 1984, expanding on ideas from futurist Ted Nelson, Larson's commercial DOS Maxthink outline program added angle bracket hypertext jumps (adopted by later web browsers) to and from ASCII, batch, and other Maxthink files up to 32 levels deep. In 1986 he released his DOS Houdini network browser program that supported 2500 topics cross-connected with 7500 links in each file along with hypertext links among unlimited numbers of external ASCII, batch, and other Houdini files. In 1987, these capabilites were included in his then popular shareware DOS file browser programs HyperRez (memory resident) and PC Hypertext (which also added jumps to programs, editors, graphic files containing hot spots jumps, and cross-linked theraurus/glossary files). These programs introduced many to the browser concept and 20 years later, Google still lists 3,000,000 references to PC Hypertext. In 1989, he created both HyperBBS and HyperLan which both allow multiple users to create/edit both topics and jumps for information and knowledge annealing which, in concept, the columnist John C.Dvorak says predated Wiki by many years. From 1987 on, he also created TransText (hypertext word processor) and many utilities for rapidly building large scale knowledge systems ... and in 1989 helped produce for one of the big eight accounting firms a comprehensive knowledge system of integrating all accounting laws/regulations into a CDROM containing 50,000 files with 200,000 hypertext jumps. Additionally, the Lynx (a very early web-based browser) development history notes their project origin was based on the browser concepts from Neil Larson and Maxthink. In 1989, he declined joining the MOSAIC browser team with his preference for knowledge/wisdom creation over distributing information ... a problem still not solved by today's internet. Another early browser, Silversmith, was created by John Bottoms in 1987.

The browser, based on SGML tags, used a tag set from the Electronic Document Project of the AAP with minor modifications and was sold to a number of early adopters. At the time SGML was used exclusively for the formatting of printed documents. The use of SGML for electronically displayed documents signaled a shift in electronic publishing and was met with considerable resistance. Silversmith included an integrated indexer, full text searches, hypertext links between images text and sound using SGML tags and a return stack for use with hypertext links. It included features that are still not available in today's browsers. These include capabilities such as the ability to restrict searches within document structures, searches on indexed documents using wild cards and the ability to search on tag attribute values and attribute names. SGML-FAQ US Patent Starting in 1988, Peter Scott and Earle Fogel expanded the earlier HyperRez concept in creating Hytelnet which added jumps to telnet sites ... and which by 1990 offered users instant logon and access to the online catalogs of over 5000 libraries around the world. The strength of Hytelnet was speed and simplicity in link creation/execution at the expense of a centralized world wide source for adding, indexing, and modifying telnet links. This problem was solved by the invention of the web server. A NeXTcube was used by Tim Berners-Lee (who pioneered the use of hypertext for sharing information) as the world's first Web server, and also an early Web browser, WorldWideWeb in 1990. Berners-Lee introduced it to colleagues at CERN in March 1991. Since then the development of Web browsers has been inseparably intertwined with the development of the Web itself. In April 1990, a draft patent application for a mass market consumer device for browsing pages via links "PageLink" was proposed by Craig Cockburn at Digital Equipment Co Ltd (DEC) whilst working in their Networking and Communications division in Reading, England. This application for a keyboardless touch screen browser for consumers also makes reference to "navigating and searching text" and "bookmarks" was aimed at (quotes paraphrased) "replacing books", "storing a shopping list" "have an updated personalised newspaper updated round the clock", "dynamically updated maps for use in a car" and suggests such a device could have a "profound effect on the advertising industry". The patent was canned by Digital as too futuristic and, being largely hardware based, had obstacles to market that purely software driven approaches did not suffer from.

Early WWW browsers
In 1992, Tony Johnson released the MidasWWW browser. Based on Motif/X, MidasWWW allowed viewing of PostScript files on the Web from Unix and VMS, and even handled compressed PostScript. Another early popular Web browser was ViolaWWW, which was modeled after HyperCard. However, the explosion in popularity of the Web was triggered by NCSA Mosaic which was a graphical browser running originally on Unix but soon ported to the Amiga platform, and later the Apple Macintosh and Microsoft Windows platforms. Version 1.0 was released in September 1993, and was dubbed the killer application of the Internet. Marc Andreessen, who was the leader of the Mosaic team at NCSA, quit to form a company that would later be known as Netscape Communications Corporation. Netscape released its flagship Navigator product in October 1994, and it took off the next year. Microsoft, which had thus far not marketed a browser (in fact even as late as 1995 Bill Gates dismissed personal use of the World Wide Web as a passing fad)finally entered the fray with its Internet Explorer product, purchased from Spyglass, Inc. This began what is known as the browser wars, the fight for the Web browser market between Microsoft and Netscape. The wars put the Web in the hands of millions of ordinary PC users, but showed how commercialization of the Web could stymie standards efforts. Both Microsoft and Netscape liberally incorporated proprietary extensions to HTML in their products, and tried to gain an edge by product differentiation, leading to the acceptance of the Cascading Style Sheets proposed by HÃ¥kon Wium Lie over Netscape's JavaScript Style Sheets (JSSS) by W3C.

Microsoft gains dominance
In 1996, Netscape's share of the browser market reached 86% (with Internet Explorer edging up 10%); but then Microsoft began integrating its browser with its operating system and bundling deals with OEMs, and within two years the balance had reversed. Although Microsoft has since faced antitrust litigation on these charges, the browser wars effectively ended once it was clear that Netscape's declining market share trend was irreversible. In the second half of 2004 Internet Explorer reached a peak market share of more than 92%. Since then, its market share has been slowly but steadily declining and is less than 75% (Feb 2008). Unable to continue commercially funding their product's development, Netscape responded by open sourcing its product, creating Mozilla. This helped the browser maintain its technical edge over Internet Explorer, but did not slow Netscape's declining market share. Netscape was purchased by America Online in late 1998. At first, the Mozilla project struggled to attract developers, but by 2002 it had evolved into a relatively stable and powerful internet suite. Mozilla 1.0 was released to mark this milestone. Also in 2002, a spin off project that would eventually become the popular Firefox was released. In 2004, Firefox 1.0 was released; Firefox 1.5 was released in November 2005. Firefox 2, a major update, was released in October 2006 and work has already begun on Firefox 3 which was scheduled for release in 2007. In 2006, Mozilla and its derivatives account for approximately 12% of Web traffic. Opera, an innovative, speedy browser popular in handheld devices, particularly mobile phones, as well as on PCs in some countries was released in 1996 and remains a niche player in the PC Web browser market. It is available on Nintendo's DS, DS Lite and Wii consoles. The Opera Mini browser uses the Presto layout engine like all versions of Opera, but runs on most phones supporting Java Midlets. The Lynx browser remains popular for Unix shell users and with vision impaired users due to its entirely text-based nature. There are also several text-mode browsers with advanced features, such as w3m, Links (which can operate both in text and graphical mode), and the Links forks such as ELinks. Prior to the release of Mac OS X, Internet Explorer for Mac and Netscape were also the primary browsers in use on the Macintosh platform. However, Apple's Safari, the default browser on OS X from version 10.3 onwards, has since grown to dominate this market. In August 2007, Apple also ported its Safari web browser for use on the Windows XP and Vista operating systems. Browsers such as Firefox, Camino and Flock are also popular amongst Mac users. In 2003, Microsoft announced that Internet Explorer would no longer be made available as a separate product but would be part of the evolution of its Windows platform, and that no more releases for the Macintosh would be made. However, in early 2005, Microsoft changed its plans, announcing that version 7 of Internet Explorer was under development. IE 7 was released for Windows XP, Windows Server 2003, and Windows Vista in October 2006. AOL announced that it will retire support and development of the web browser, Netscape, in February 2008, and encouraged users to use Mozilla Firefox and Flock.

Baca Selanjutnya - Web Browser

Windows Server 2003 0

Windows Server 2003 (also referred to as Win2K3) is a server operating system produced by Microsoft. Introduced on April 24, 2003 as the successor to Windows 2000 Server, it is considered by Microsoft to be the cornerstone of their Windows Server System line of business server products. An updated version, Windows Server 2003 R2 was released to manufacturing on 6 December 2005. Its successor, Windows Server 2008, was released on February 4, 2008. According to Microsoft, Windows Server 2003 is more scalable and delivers better performance than its predecessor, Windows 2000.

Overview
Released on April 24, 2003, Windows Server 2003 (which carries the version number 5.2) is the follow-up to Windows 2000 Server, incorporating compatibility and other features from Windows XP. Unlike Windows 2000 Server, Windows Server 2003's default installation has none of the server components enabled, to reduce the attack surface of new machines. Windows Server 2003 includes compatibility modes to allow older applications to run with greater stability. It was made more compatible with Windows NT 4.0 domain-based networking. Incorporating and upgrading a Windows NT 4.0 domain to Windows 2000 was considered difficult and time-consuming, and generally was considered an all-or-nothing upgrade, particularly when dealing with Active Directory. Windows Server 2003 brought in enhanced Active Directory compatibility, and better deployment support, to ease the transition from Windows NT 4.0 to Windows Server 2003 and Windows XP Professional. Changes to various services include those to the IIS web server, which was almost completely rewritten to improve performance and security, Distributed File System, which now supports hosting multiple DFS roots on a single server, Terminal Server, Active Directory, Print Server, and a number of other areas. Windows Server 2003 was also the first operating system released by Microsoft after the announcement of their Trustworthy Computing initiative, and as a result, contains a number of changes to security defaults and practices. The product went through several name changes during the course of development. When first announced in 2000, it was known by its codename, "Whistler Server"; it was then named "Windows 2002 Server" for a brief time in mid-2001, before being renamed "Windows .NET Server" as part of Microsoft's effort to promote their new integrated enterprise and development framework, Microsoft .NET. It was later renamed to "Windows .NET Server 2003". Due to fears of confusing the market about what ".NET" represents and responding to criticism, Microsoft removed .NET from the name during the Release Candidate stage in late-2002. This allowed the name .NET to exclusively apply to the .NET Framework, as previously it had appeared that .NET was just a tag for a generation of Microsoft products.

New and updated features
* Internet Information Services (IIS) v6.0 - A significantly improved version of IIS.
* Increased default security over previous versions, due to the built-in firewall and having most services disabled by default.
* Significant improvements to Message Queuing.
* Manage Your Server - a role management administrative tool that allows an administrator to choose what functionality the server should provide.
* Improvements to Active Directory, such as the ability to deactivate classes from the schema, or to run multiple instances of the directory server (ADAM)
* Improvements to Group Policy handling and administration
* Improved disk management, including the ability to back up from shadows of files, allowing the backup of open files.
* Improved scripting and command line tools, which are part of Microsoft's initiative to bring a complete command shell to the next version of Windows.
* Support for a hardware-based "watchdog timer", which can restart the server if the operating system does not respond within a certain amount of time.

Updates
Service Pack 1
On March 30, 2005, Microsoft released Service Pack 1 for Windows Server 2003. Among the improvements are many of the same updates that were provided to Windows XP users with Service Pack 2. Features that are added with Service Pack 1 include:
* Security Configuration Wizard: A tool that allows administrators to more easily research, and make changes to, security policies.
* Hot Patching: This feature is set to extend Windows Server 2003's ability to take DLL, Driver, and non-kernel patches without a reboot.
* IIS 6.0 Metabase Auditing: Allowing the tracking of metabase edits.
* Windows Firewall: Brings many of the improvements from Windows XP Service Pack 2 to Windows Server 2003; also with the Security Configuration Wizard, it allows administrators to more easily manage the incoming open ports, as it will automatically detect and select default roles.
* Other networking improvements include support for Wireless Provisioning Services, better IPv6 support, and new protections against SYN flood TCP attacks.
* Post-Setup Security Updates: A default mode that is turned on when a Service Pack 1 server is first booted up after installation. It configures the firewall to block all incoming connections, and directs the user to install updates.
* Data Execution Prevention (DEP): Support for the No Execute (NX) bit which helps to prevent buffer overflow exploits that are often the attack vector of Windows Server exploits.
* Windows Media Player version 10
* Internet Explorer 6 SV1 (e.g. 'IE6 SP2')
A full list of updates is available in the Microsoft Knowledge Base.

Windows Server 2003 R2
Windows Server 2003 R2, an update of Windows Server 2003, was released to manufacturing on 6 December 2005. It is distributed on two CDs, with one CD being the Windows Server 2003 SP1 CD. The other CD adds many optionally installable features for Windows Server 2003. The R2 update was released for all x86 and x64 versions, but not for Itanium versions.

New features
* Branch Office Server Management
o Centralized management tools for file and printers
o Enhanced Distributed File System (DFS) namespace management interface
o More efficient WAN data replication with Remote Differential Compression.
* Identity and Access Management
o Extranet Single Sign-On and identity federation
o Centralized administration of extranet application access
o Automated disabling of extranet access based on Active Directory account information
o User access logging
o Cross-platform web Single Sign-On and password synchronization using Network Information Service (NIS)
* Storage Management
o File Server Resource Manager (storage utilization reporting)
o Enhanced quota management
o File screening limits files types allowed
o Storage Manager for Storage Area Networks (SAN) (storage array configuration)
* Server Virtualization
o A new licensing policy allows up to 4 virtual instances on Enterprise Edition and Unlimited on Datacenter Edition
* Utilities and SDK for UNIX-Based Applications add-on, giving a relatively full Unix development environment.
o Base Utilities
o SVR-5 Utilities
o Base SDK
o GNU SDK
o GNU Utilities
o Perl 5
o Visual Studio Debugger Add-in

Service Pack 2
Service Pack 2 for Windows Server 2003 was released on March 13, 2007. The release date was originally scheduled for the first half of 2006. On June 13, 2006, Microsoft made an initial test version of Service Pack 2 available to Microsoft Connect users, with a build number of 2721. This was followed by build 2805, known as Beta 2 Refresh. The latest build is the build 3959. Microsoft has described Service Pack 2 as a "standard" service pack release containing previously-released security updates, hotfixes, and reliability and performance improvements. In addition, Service Pack 2 contains Microsoft Management Console 3.0, Windows Deployment Services (which replaces Remote Installation Services), support for WPA2, and improvements to IPSec and MSConfig. Service Pack 2 also adds Windows Server 2003 Scalable Networking Pack (SNP), which allows hardware acceleration for processing network packets, thereby enabling faster throughput. SNP was previously available as an out-of-band update for Windows Server 2003 Service Pack 1.

Variants
Windows Server 2003 comes in several variants, each targeted towards a particular size and type of business: See Compare the Editions of Windows Server 2003 for a concise comparison. In general, all variants of Windows Server 2003 have the ability to share files and printers, act as an application server, and host message queues, provide email services, authenticate users, act as an X.509 certificate server, provide LDAP directory services, serve streaming media, and to perform other server-oriented functions.

Windows Small Business Server
SBS includes Windows Server and additional technologies aimed at providing a small business with a complete technology solution. The technologies are integrated to enable small business with targeted solutions such as the Remote Web Workplace, and offer management benefits such as integrated setup, enhanced monitoring, a unified management console, and remote access. The Standard Edition of SBS includes Windows SharePoint Services for collaboration, Microsoft Exchange server for e-mail, Fax Server, and the Active Directory for user management. The product also provides a basic firewall, DHCP server and NAT router using either two network cards or one network card in addition to a hardware router. The Premium Edition of SBS includes the above plus Microsoft SQL Server 2000 and Microsoft Internet Security and Acceleration Server 2004. SBS has its own type of Client Access License (CAL) that is different and costs slightly more than CALs for the other editions of Windows Server 2003. However, the SBS CAL encompasses the user CALs for Windows Server, Exchange Server, SQL Server, and ISA Server, and hence is less expensive than buying all the other CALs individually.
SBS server has the following design limitations:
* Only one computer in a domain can be running Windows Server 2003 for Small Business Server.
* Windows Server 2003 for Small Business Server must be the root of the Active Directory forest.
* Windows Server 2003 for Small Business Server cannot trust any other domains.
* Windows Server 2003 for Small Business Server is limited to 75 users or devices depending on which type of CAL.
* Windows Server 2003 for Small Business Server is limited to 4GB of RAM (Random Access Memory).
* A Windows Server 2003 for Small Business Server domain cannot have any child domains.
* Terminal Services only operates in remote administration mode on the server running SBS 2003, and only two simultaneous RDP sessions are allowed. (Change from SBS 2000 policy)
* To remove the limits from SBS server and upgrade from Small Business Server to regular Windows Server, Exchange Server, SQL and ISA server versions there is a Windows Small Business Server 2003 R2 Transition Pack.

Web Edition
Windows Server 2003, Web Edition is mainly for building and hosting Web applications, Web pages, and XML Web services. It is designed to be used primarily as an IIS 6.0 Web server and provides a platform for rapidly developing and deploying XML Web services and applications that use ASP.NET technology, a key part of the .NET Framework. This edition does not require Client Access Licenses and Terminal Server mode is not included on Web Edition. However, Remote Desktop for Administration is available on Windows Server 2003, Web Edition. Only 10 concurrent file-sharing connections are allowed at any moment. It is not possible to install Microsoft SQL Server and Microsoft Exchange software in this edition. However MSDE and SQL Server 2005 Express are fully supported after service pack 1 is installed. Despite supporting XML Web services and ASP.NET, UDDI cannot be deployed on Windows Server 2003, Web Edition. The .NET Framework version 2.0 is not included with Windows Server 2003, Web Edition, but can be installed as a separate update from Windows Update. Windows Server 2003 Web Edition supports a maximum of 2 processors with support for a maximum of 2GB of RAM. Additionally, Windows Server 2003, Web Edition cannot act as a domain controller. Additionally, it is the only version of Windows Server 2003 that does not include client number limitation upon Windows update services as it does not require Client Access Licenses.

Standard Edition
Windows Server 2003, Standard Edition is aimed towards small to medium sized businesses. Standard Edition supports file and printer sharing, offers secure Internet connectivity, and allows centralized desktop application deployment. This edition of Windows will run on up to 4 processors with up to 4 GB RAM. 64-bit versions are also available for the x86-64 architecture (AMD64 and EM64T, called collectively x64 by Microsoft). The 64-bit version of Windows Server 2003, Standard Edition is capable of addressing up to 32 GB of RAM and it also supports Non-Uniform Memory Access (NUMA), something the 32-bit version does not do. This version is available for students to download free of charge as part of Microsoft's DreamSpark program.

Enterprise Edition
Windows Server 2003, Enterprise Edition is aimed towards medium to large businesses. It is a full-function server operating system that supports up to eight processors and provides enterprise-class features such as eight-node clustering using Microsoft Cluster Server (MSCS) software and support for up to 32 GB of memory through PAE (added with the /PAE boot string). Enterprise Edition also comes in 64-bit versions for the Itanium and x64 architectures. Both 32-bit and 64-bit versions support Non-Uniform Memory Access (NUMA). It also provides the ability to hot-add supported hardware..

Datacenter Edition
Windows Server 2003, Datacenter Edition is designed for infrastructures demanding high security and reliability. Windows Server 2003 is available for x86 32-bit, Itanium, and x64 processors. It supports a minimum of 8 processors and a maximum of 64 processors; however it is limited to 32 processors when run on 32-bit architecture. 32-bit architecture also limits memory addressability to 64GB, while the 64-bit versions support up to 2 TB. Windows Server 2003, Datacenter Edition, also allows limiting processor and memory usage on a per-application basis. Windows Server 2003 Datacenter Edition also supports Non-Uniform Memory Access. If supported by the system, Windows, with help from the system firmware creates a Static Resource Affinity Table that defines the NUMA topology of the system. Windows then uses this table to optimize memory accesses, and provide NUMA awareness to applications, thereby increasing the efficiency of thread scheduling and memory management. Windows Server 2003, Datacenter Edition has better support for Storage Area Networks (SAN). It features a service which uses Windows sockets to emulate TCP/IP communication over native SAN service providers, thereby allowing a SAN to be accessed over any TCP/IP channel. With this, any application that can communicate over TCP/IP can use a SAN, without any modification to the application. Windows Server 2003, Datacenter Edition, also supports 8-node clustering. Clustering increases availability and fault tolerance of server installations, by distributing and replicating the service among many servers. Windows supports clustering, with each cluster having its own dedicated storage, or all clusters connected to a common Storage Area Network (SAN), which can be running on Windows as well as non-Windows Operating systems. The SAN may be connected to other computers as well.

Windows Compute Cluster Server
Windows Compute Cluster Server 2003 (CCS), released in June 2006, is designed for high-end applications that require high performance computing clusters. It is designed to be deployed on numerous computers to be clustered together to achieve supercomputing speeds. Each Compute Cluster Server network comprises at least one controlling head node and subordinate processing nodes that carry out most of the work. Computer Cluster Server uses the Microsoft Messaging Passing Interface v2 (MS-MPI) to communicate between the processing nodes on the cluster network. It ties nodes together with a powerful inter-process communication mechanism which can be complex because of communications between hundreds or even thousands of processors working in parallel. The application programming interface consists of over 160 functions. A job launcher enables users to execute jobs to be executed in the computing cluster. MS MPI was designed to be compatible with the reference open source MPI2 specification which is widely used in High-performance computing (HPC). With some exceptions because of security considerations, MS MPI covers the complete set of MPI2 functionality as implemented in MPICH2, except for the planned future features of dynamic process spawn and publishing.

Windows Storage Server
Windows Storage Server 2003, a part of the Windows Server 2003 series is a specialized server Operating System for Network Attached Storage (NAS). It is optimized for use in file and print sharing and also in Storage Area Network (SAN) scenarios. It is only available through Original equipment manufacturers (OEMs). Unlike other Windows Server 2003 editions that provide file and printer sharing functionality, Windows Storage Server 2003 does not require any Client access licenses. Windows Storage Server 2003 NAS equipment can be headless, which means that they are without any monitors, keyboards or mice, and are administered remotely. Such devices are plugged into any existing IP network and the storage capacity is available to all users. Windows Storage Server 2003 can use RAID arrays to provide data redundancy, fault-tolerance and high-performance. Multiple such NAS servers can be clustered to appear as a single device. This allows for very high performance as well as allowing the service to remain up even if one of the servers goes down. Windows Storage Server 2003 can also be used to create a Storage Area Network, in which the data is transferred in terms of chunks rather than files, thus providing more granularity to the data that can be transferred. This provides higher performance to database and transaction processing applications. Windows Storage Server 2003 also allows NAS devices to be connected to a SAN. Windows Storage Server 2003 R2, as a follow-up to Windows Storage Server 2003, adds file-server performance optimization, Single Instance Storage (SIS), and index-based search. Single instance storage (SIS) scans storage volumes for duplicate files, and moves the duplicate files to the common SIS store. The file on the volume is replaced with a link to the file. This substitution reduces the amount of storage space required, by as much as 70%.Windows Storage Server R2 provides an index-based, full-text search based on the indexing engine already built-in Windows server. The updated search engine speeds up indexed searches on network shares. Storage Server R2 also provides filters for searching many standard file formats, such as .zip, AutoCAD, XML, MP3, and .pdf, and all Microsoft Office file formats. Windows Storage Server 2003 R2 includes built in support for Windows SharePoint Services and Microsoft SharePoint Portal Server, and adds Storage Management snap-in for the Microsoft Management Console. It can be used to centrally manage storage volumes, including DFS shares, on servers running Windows Storage Server R2. Windows Storage Server R2 can be used as an iSCSI target with standard and enterprise editions of Windows Storage Server R2, incorporating WinTarget iSCSI technology which Microsoft acquired in 2006 by from StringBean software. This will be an add on feature available for purchase through OEM partners as an iSCSI feature pack, or is included in some versions of WSS as configured by OEMs.

Features
* Distributed File System (DFS): DFS allows multiple network shares to be aggregated as a virtual file system.
* Support for SAN and iSCSI: Computers can connect to a Storage Server over the LAN, and there is no need for a separate fibre channel network. Thus a Storage Area Network can be created over the LAN itself. iSCSI uses the SCSI protocol to transfer data as a block of bytes, rather than as a file. This increases performance of the Storage network in some scenarios, such as using a database server.
* Virtual Disc Service: It allows NAS devices, RAID devices and SAN shares to be exposed and managed as if they were normal hard drives.
* JBOD systems: JBOD (Just a bunch of discs) systems, by using VDS, can manage a group of individual storage devices as a single unit. There is no need for the storage units to be of the same make and model.
* Software and Hardware RAID: Windows Storage Server 2003 has intrinsic support for hardware implementation of RAID. In case hardware support is not available, it can use software enabled RAID. In that case, all processing is done by the OS.
* Multi Path IO (MPIO): It provides an alternate connection to IO devices in case the primary path is down.

Editions
Windows Unified Data Storage Server is a version of Windows Storage Server 2003 R2 with iSCSI target support standard, available in only the standard and enterprise editions.
* Microsoft defines a physical CPU/processor as a single socket/node on the systemboard. For O/S licensing purposes, a dual-socket single-core (Intel Pentium/4 Xeon, AMD Athlon/64) system counts as a total of 2 processors, whereas a single-socket quad-core CPU (such as AMD's Barcelona and Intel's Core 2 Quad) counts as 1 processor. Microsoft's policy has no bearing on how third-party software vendors (such as Oracle) administer CPU licensing for their server applications.

Windows Home Server
Windows Home Server is an operating system from Microsoft based on Windows Server 2003 SP2. Announced on January 7, 2007 at the Consumer Electronics Show by Bill Gates, Windows Home Server is intended to be a solution for homes with multiple connected PCs to offer file sharing, automated backups, and remote access. Windows Home Server began shipment to OEMs on 15 September 2007.

Editions and pricing
Small Business Server
Average cost is US$599, the product is purchased through a brick-and-mortar retailer, while an open new license must be purchased through a volume license reseller.
Web Edition
This operating system is priced at US$397. Client Access Licenses are not required.
Standard Edition
This operating system is priced at US$999, although licenses may be purchased for less from a reseller. For more than 5 Active Directory remote-connected users (users of Exchange, for example) additional costs are incurred.
Enterprise Edition
This operating system is priced at US$3,999. For more than 25 remote-connected users, additional costs are incurred (either CALs or the EC license).
Datacenter Edition
Microsoft's website shows Datacenter Edition R2 expansion for US$2,999.
Computer Cluster Edition
This operating system's price is US$469.
Storage Server
This operating system's price is unknown, since it must be obtained through an OEM. It is rumored to cost between US$500 and US$1000. Smaller OEMs interested in shipping systems which include Windows Storage Server (and Microsoft iSCSI Target Software) may find the following article of interest.
External Connector
An additional license required when non-employees authenticate to Windows applications, for example on an Internet-connected application server. Priced at US$3999 per server.
USA Nonprofit Pricing
In the USA, Microsoft products, including Windows Server, are available under the Microsoft Donation Program for qualifying 501(c)(3) educational nonprofit organizations for a nominal administrative fee. The program is administered at http://www.techsoup.org/stock. All these prices are estimated retail; actual prices will vary depending on the reseller. Free trial versions of Windows Server 2003 x86/x64/ia64 can be downloaded from microsoft.com and used for 180 days.
Baca Selanjutnya - Windows Server 2003

Universal Serial Bus 0

Universal Serial Bus (USB) is a serial bus standard to interface devices. USB was designed to allow many peripherals to be connected using a single standardized interface socket and to improve the plug-and-play capabilities by allowing devices to be connected and disconnected without rebooting the computer (hot swapping). Other convenient features include providing power to low-consumption devices without the need for an external power supply and allowing many devices to be used without requiring manufacturer specific, individual device drivers to be installed. USB is intended to help retire all legacy varieties of serial and parallel ports. USB can connect computer peripherals such as mice, keyboards, PDAs, gamepads and joysticks, scanners, digital cameras, printers, personal media players, and flash drives. For many of those devices USB has become the standard connection method. USB is also used extensively to connect non-networked printers; USB simplifies connecting several printers to one computer. USB lock software can lock out memory devices and still allow other USB peripherals to function. The USB was originally designed for personal computers, but it has become commonplace on other devices such as PDAs and video game consoles. In 2004, there were about 1 billion USB devices in the world. The design of USB is standardized by the USB Implementers Forum (USB-IF), an industry standards body incorporating leading companies from the computer and electronics industries. Notable members have included Agere, Apple Inc., Hewlett-Packard, Intel, NEC, and Microsoft.

History
The USB 1.0 specification was introduced in November 1995. USB was promoted by Intel (UHCI and open software stack), Microsoft (Windows software stack), Philips (Hub, USB-Audio), and US Robotics. Originally USB was intended to replace the multitude of connectors at the back of PCs, as well as to simplify software configuration of communication devices. USB was also the primary connector on the original Apple iMac introduced 6 May 1998, including the connector for its new keyboard and mouse. USB 1.1 came out in September 1998 to help rectify the adoption problems that occurred with earlier iterations of USB. As of 2008, the USB specification is at version 2.0 (with revisions). Hewlett-Packard, Intel, Lucent (now Alcatel-Lucent), Microsoft, NEC, and Philips jointly led the initiative to develop a higher data transfer rate than the 1.1 specification. The USB 2.0 specification was released in April 2000 and was standardized by the USB-IF at the end of 2001. Equipment conforming with any version of the standard will also work with devices designed to any previous specification (known as backward compatibility). Smaller USB plugs and receptacles for use in handheld and mobile devices, called Mini-B, were added to USB specification in the first engineering change notice. A new variant of smaller USB plugs and receptacles, Micro-USB, was announced by the USB Implementers Forum on January 4, 2007.

Overview
A USB system has an asymmetric design, consisting of a host, a multitude of downstream USB ports, and multiple peripheral devices connected in a tiered-star topology. Additional USB hubs may be included in the tiers, allowing branching into a tree structure, subject to a limit of 5 levels of tiers. USB host may have multiple host controllers and each host controller may provide one or more USB ports. Up to 127 devices, including the hub devices, may be connected to a single host controller. USB devices are linked in series through hubs. There always exists one hub known as the root hub, which is built-in to the host controller. So-called "sharing hubs" also exist; allowing multiple computers to access the same peripheral device(s), either switching access between PCs automatically or manually. They are popular in small-office environments. In network terms they converge rather than diverge branches. A single physical USB device may consist of several logical sub-devices that are referred to as device functions, because each individual device may provide several functions, such as a webcam (video device function) with a built-in microphone (audio device function). USB device communication is based on pipes (logical channels). Pipes are connections from the host controller to a logical entity on the device named an endpoint. The term endpoint is also occasionally used to refer to the pipe. A USB device can have up to 32 active pipes, 16 into the host controller and 16 out of the controller. Each endpoint can transfer data in one direction only, either into or out of the device, so each pipe is uni-directional. Endpoints are grouped into interfaces and each interface is associated with a single device function. An exception to this is endpoint zero, which is used for device configuration and which is not associated with any interface. When a new USB device is connected to a USB host, the USB device enumeration process is started. The enumeration process first sends a reset signal to the USB device. The speed of the USB device is determined during the reset signaling. After reset, USB device setup information is read from the device by the host and the device is assigned a unique host-controller specific 7-bit address. If the device is supported by the host, the device drivers needed for communicating with the device are loaded and the device is set to configured state. If the USB host is restarted, the enumeration process is repeated for all connected devices. The host controller polls the bus for traffic, usually in a round-robin fashion, so no USB device can transfer any data on the bus without an explicit request from the host controller.

Host controllers
The computer hardware that contains the host controller and the root hub has an interface geared toward the programmer which is called Host Controller Device (HCD) and is defined by the hardware implementer. In the version 1.x age, there were two competing HCD implementations, Open Host Controller Interface (OHCI) and Universal Host Controller Interface (UHCI). OHCI was developed by Compaq, Microsoft and National Semiconductor; UHCI was by Intel. VIA Technologies licensed the UHCI standard from Intel; all other chipset implementers use OHCI. UHCI is more software-driven, making UHCI slightly more processor-intensive than OHCI but cheaper to implement. The dueling implementations forced operating system vendors and hardware vendors to develop and test on both implementations which increased cost. During the design phase of USB 2.0 the USB-IF insisted on only one implementation. The USB 2.0 HCD implementation is called the Enhanced Host Controller Interface (EHCI). Only EHCI can support hi-speed transfers. Most of PCI-based EHCI controllers contain other HCD implementations called 'companion host controller' to support Full Speed and Low Speed devices. The virtual HCD on Intel and VIA EHCI controllers are UHCI. All other vendors use virtual OHCI controllers. HCD standards are out of the USB specification's scope, and the USB specification does not specify any HCD interfaces.

Device classes
Devices that attach to the bus can be full-custom devices requiring a full-custom device driver to be used, or may belong to a device class. These classes define an expected behavior in terms of device and interface descriptors so that the same device driver may be used for any device that claims to be a member of a certain class. An operating system is supposed to implement all device classes so as to provide generic drivers for any USB device. Device classes are decided upon by the Device Working Group of the USB Implementers Forum.

USB mass-storage
USB implements connections to storage devices using a set of standards called the USB mass storage device class (referred to as MSC or UMS). This was initially intended for traditional magnetic and optical drives, but has been extended to support a wide variety of devices, particularly flash drives. Though most computers are capable of booting off of USB Mass Storage devices, USB is not intended to be a primary bus for a computer's internal storage: buses such as ATA (IDE), Serial ATA (SATA), and SCSI fulfill that role.

However, USB has one important advantage in that it is possible to install and remove devices without opening the computer case, making it useful for external drives. Originally conceived and still used today for optical storage devices (CD-RW drives, DVD drives, etc.), a number of manufacturers offer external portable USB hard drives, or empty enclosures for drives, that offer performance comparable to internal drives. These external drives usually contain a translating device that interfaces a drive of conventional technology (IDE, ATA, SATA, ATAPI, or even SCSI) to a USB port. Functionally, the drive appears to the user just like another internal drive. Other competing standards that allow for external connectivity are eSATA and FireWire.

Human-interface devices (HIDs)
Mice and keyboards are frequently fitted with USB connectors, but because most PC motherboards still retain PS/2 connectors for the keyboard and mouse as of 2007, they are often supplied with a small USB-to-PS/2 adaptor, allowing usage with either USB or PS/2 interface. There is no logic inside these adaptors: they make use of the fact that such HID interfaces are equipped with controllers that are capable of serving both the USB and the PS/2 protocol, and automatically detect which type of port they are plugged in to. Joysticks, keypads, tablets and other human-interface devices are also progressively migrating from MIDI, PC game port, and PS/2 connectors to USB. Apple Macintosh computers have been using USB exclusively for all wired mice and keyboards since January 1999. The original iMac raised public awareness of USB considerably in August 1998, as it discarded legacy ports to use only USB. PCs had USB ports prior to the iMac's introduction, but they were included with a full complement of traditional ports which limited USB's adoption. The iMac's influence can be seen in the number of USB peripherals with matching translucent, colored plastic enclosures that were available in the late '90s and early '00s.

USB signalling
USB supports three data rates:
* A Low Speed (1.1, 2.0) rate of 1.5 Mbit/s (187.5 kB/s) that is mostly used for Human Interface Devices (HID) such as keyboards, mice, and joysticks.
* A Full Speed (1.1, 2.0) rate of 12 Mbit/s (1.5 MB/s). Full Speed was the fastest rate before the USB 2.0 specification and many devices fall back to Full Speed. Full Speed devices divide the USB bandwidth between them in a first-come first-served basis and it is not uncommon to run out of bandwidth with several isochronous devices. All USB Hubs support Full Speed.
* A Hi-Speed (2.0) rate of 480 Mbit/s (60 MB/s).
Experimental data rate:
* A Super-Speed (3.0) rate of 4.8 Gbit/s (600 MB/s). The USB 3.0 specification will be released by Intel and its partners in mid 2008 according to early reports from CNET news. According to Intel, bus speeds will be 10 times faster than USB 2.0 due to the inclusion of a fiber optic link that works with traditional copper connectors. Products using the 3.0 specification are likely to arrive in 2009 or 2010.

USB signals are transmitted on a twisted pair data cable with 90Ω ±15% impedance, labeled D+ and D−. These collectively use half-duplex differential signaling to combat the effects of electromagnetic noise on longer lines. D+ and D− usually operate together; they are not separate simplex connections. Transmitted signal levels are 0.0–0.3 volts for low and 2.8–3.6 volts for high in Full Speed and Low Speed modes, and +-400mV in High Speed (HS) mode. In FS mode the cable wires are not terminated, but the HS mode has termination of 45Ω to ground, or 90Ω differential to match the data cable impedance. USB uses a special protocol to negotiate the High Speed mode called "chirping". In simplified terms, a device that is HS capable always connects as an FS device first, but after receiving a USB RESET (both D+ and D- are driven LOW by host) it tries to pull the D- line high. If the host (or hub) is also HS capable, it returns alternating signals on D- and D+ lines letting the device know that the tier will operate at High Speed. Clock tolerance is 480.00 Mbit/s ±500ppm, 12.000 Mbit/s ±2500ppm, 1.50 Mbit/s ±15000ppm. The USB standard uses the NRZI system to encode data, and uses "bit stuffing" by always injecting one artificial "zero" bit if the stream of data contains six consecutive "ones" before converting the bit stream to NRZI. Though Hi-Speed devices are commonly referred to as "USB 2.0" and advertised as "up to 480 Mbit/s", not all USB 2.0 devices are Hi-Speed. The USB-IF certifies devices and provides licenses to use special marketing logos for either "Basic-Speed" (low and full) or Hi-Speed after passing a compliance test and paying a licensing fee. All devices are tested according to the latest spec, so recently-compliant Low-Speed devices are also 2.0 devices. The actual throughput currently (2006) attained with real devices is about two thirds of the maximum theoretical bulk data transfer rate of 53.248 MB/s. Typical hi-speed USB devices operate at lower speeds, often about 3 MB/s overall, sometimes up to 10-20 MB/s.

USB connector properties
The connectors specified by the USB committee were designed to support a number of USB's underlying goals, and to reflect lessons learned from the varied menagerie of connectors then in service.
* The connectors are particularly cheap to manufacture.

Usability
* It is difficult to incorrectly attach a USB connector. Connectors cannot be plugged-in upside down, and it is clear from the appearance and kinesthetic sensation of making a connection when the plug and socket are correctly mated. However, it is not obvious at a glance to the inexperienced user (or to a user without sight of the installation) which way around the connector goes, so it is often necessary to try both ways.
* Only a moderate insertion/removal force is needed (by specification). USB cables and small USB devices are held in place by the gripping force from the receptacle (without the need for the screws, clips, or thumbturns that other connectors require). The force needed to make or break a connection is modest, allowing connections to be made in awkward circumstances or by those with motor disabilities.
* The connectors enforce the directed topology of a USB network. USB does not support cyclical networks, so the connectors from incompatible USB devices are themselves incompatible. Unlike other communications systems (e.g. RJ-45 cabling) gender-changers are almost never used, making it difficult to create a cyclic USB network.

Durability
* The connectors are designed to be robust. Many previous connector designs were fragile, with pins or other delicate components prone to bending or breaking, even with the application of only very modest force. The electrical contacts in a USB connector are protected by an adjacent plastic tongue, and the entire connecting assembly is usually further protected by an enclosing metal sheath. As a result USB connectors can safely be handled, inserted, and removed, even by a small child. The encasing sheath and the tough molded plug body mean that a connector can be dropped, stepped upon, even crushed or struck, all without damage; a considerable degree of force is needed to significantly damage a USB connector.
* The connector construction always ensures that the external sheath on the plug contacts with its counterpart in the receptacle before the four connectors within are connected. This sheath is typically connected to the system ground, allowing otherwise damaging static charges to be safely discharged by this route (rather than via delicate electronic components). This means of enclosure also means that there is a (moderate) degree of protection from electromagnetic interference afforded to the USB signal while it travels through the mated connector pair (this is the only location when the otherwise twisted data pair must travel a distance in parallel). In addition, the power and common connections are made after the system ground but before the data connections. This type of staged make-break timing allows for safe hot-swapping and has long been common practice in the design of connectors in the aerospace industry.

Compatibility
* The USB standard specifies relatively low tolerances for compliant USB connectors, intending to minimize incompatibilities in connectors produced by different vendors (a goal that has been very successfully achieved). Unlike most other connector standards, the USB specification also defines limits to the size of a connecting device in the area around its plug. This was done to avoid circumstances where a device complies with the connector specification but its large size blocks adjacent ports. Compliant devices must either fit within the size restrictions or support a compliant extension cable which does.
* Two-way communication is also possible. In general, cables have only plugs, and hosts and devices have only receptacles: hosts having type-A receptacles and devices type-B. Type-A plugs only mate with type-A receptacles, and type-B with type-B. However, an extension to USB called USB On-The-Go allows a single port to act as either a host or a device — chosen by which end of the cable plugs into the socket on the unit. Even after the cable is hooked up and the units are talking, the two units may "swap" ends under program control. This facility targets units such as PDAs where the USB link might connect to a PC's host port as a device in one instance, yet connect as a host itself to a keyboard and mouse device in another instance.

Types of USB connector
There are several types of USB connectors, and some have been added as the specification has progressed. The original USB specification detailed Standard-A and Standard-B plugs and receptacles. The first engineering change notice to the USB 2.0 specification added Mini-B plugs and receptacles. The Mini-B, Micro-A, Micro-B , and Micro-AB connectors are used for smaller devices such as PDAs, mobile phones or digital cameras. The Standard-A plug is approximately 4 by 12 mm, the Standard-B approximately 7 by 8 mm, and the Micro-A and Micro-B plugs approximately 2 by 7 mm. Micro-USB is a further connector, that was announced by the USB-IF on January 4, 2007. It is intended to replace the Mini-USB plugs used in many new smartphones and Personal digital assistants. This Micro-USB plug is rated for 10,000 connect-disconnect cycles. It is about half the height of the mini-USB connector, but features a similar width. In the Universal Serial Bus Micro-USB Cables and Connectors Specification, details have been laid down for Micro-A plugs, Micro-AB receptacles, and Micro-B plugs and receptacles, along with a Standard-A receptacle to Micro-A plug adapter. The carrier led group, OMTP have recently endorsed micro-USB as the standard connector for data and power on mobile devices.

Proprietary connectors and formats
Microsoft's original Xbox game console uses standard USB 1.1 signaling in its controllers and memory cards, but features proprietary connectors and ports. Similarly, IBM UltraPort uses standard USB signaling, but via a proprietary connection format. American Power Conversion uses USB signaling and HID device class on its uninterruptible power supplies using 10P10C connectors. HTC, a company which makes Windows Mobile-based Communicators, has a proprietary connector called HTC ExtUSB, which combines mini-USB with audio input and output. Nokia includes a USB connection as part of the Pop-Port connector on their mobile phones. The second-generation iPod Shuffle uses a TRS connector to carry USB, audio, or power signals.

USB Cables
The maximum length of a standard USB cable is 5.0 meters (16.4 ft). The primary reason for this limit is the maximum allowed round-trip delay of about 1500 ns. If a USB device does not answer to host commands within the allowed time, the host considers the command to be lost. When USB device response time, delays from using the maximum number of hubs and delays from cables connecting the hubs, host and device are summed, the maximum delay caused by a single cable turns out to be 26 ns. The USB 2.0 specification states that the cable delay must be less than 5.2 ns per meter, which means that maximum length USB cable is 5 meters long. However, this is also very close to the maximum possible length when using a standard copper cable. Using USB devices over a greater length requires hubs or active extension cables. Active extension cables are bus-powered hubs equipped with two maximum length standard USB cables. USB connections can be extended to 50 m (160 ft) over CAT5 or up to 10 km (6.2 mi) over fiber by using special USB extender products developed by various manufacturers. In practice, some USB devices may work with longer cable runs than 5 meters, if the number of hubs between the host and the device is less than the maximum number allowed by the USB standard. However, using a longer cable lowers both the signal quality and the voltage provided by the USB bus below the specification tolerance limits. This may prevent USB devices from working properly or even from working at all.

Power
The USB specification provides a 5 V (volts) supply on a single wire from which connected USB devices may draw power. The specification provides for no more than 5.25 V and no less than 4.75 V (5 V±5%) between the positive and negative bus power lines. Initially, a device is only allowed to draw 100 mA. It may request more current from the upstream device in units of 2 mA up to a maximum of 500 mA. If a bus-powered hub is used, the devices downstream may only use a total of four units — 400 mA (i.e. 2 watts) — of current. This limits compliant bus-powered hubs to 4 ports. The host operating system typically keeps track of the power requirements of the USB network and may warn the computer's operator when a given segment requires more power than is available. On-The-Go and Battery Charging Specification both add new powering modes to the USB specification. The latter specification allows USB devices to draw up to 1.5 A from hubs and hosts that follow the Battery Charging Specification. As of June 14, 2007, all new mobile phones applying for license in China are required to adopt the USB port as a power port. In September, 2007 the Open Mobile Terminal Platform—a forum dominated by operators but including manufacturers such as Nokia, Samsung, Motorola, Sony Ericsson and LG—announced that its members had agreed on micro-USB as the future common connector for mobile devices.

Non-standard Devices
A number of USB devices require more power than is permitted by the specifications for a single port. This is a common requirement of external hard and optical disc drives and other devices with motors or lamps. Such devices can be used with an external power supply of adequate rating, which is allowed by the standard, or by means of a dual inputs USB cable, one input of which is used for power and data transfer, the other solely for power, which makes the device a non-standard USB device. Some external hubs may, in practice, supply more power to USB devices than required by the specification but a standard compliant device must not depend on this. Some non-standard USB devices use the 5 V power supply without participating in a proper USB network. These are usually referred to as USB decorations. The typical example is a USB-powered reading light; fans, mug heaters, battery chargers (particularly for mobile telephones) and even miniature vacuum cleaners are available. In most cases, these items contain no digitally based circuitry, and thus are not proper USB devices at all. This can cause problems with some computers — the USB specification requires that devices connect in a low-power mode (100 mA maximum) and state how much current they need, before switching, with the host's permission, into high-power mode. In addition to limiting the total average power used by the device, the USB specification limits the inrush current (to charge decoupling and bulk capacitors) when the device is first connected; otherwise, connecting a device could cause glitches in the host's internal power. Also, USB devices are required to automatically enter ultra low-power suspend mode when the USB host is suspended; many USB hosts do not cut off the power supply to USB devices when they are suspended since resuming from the suspended state would become a lot more complicated if they did. There are also devices at the host end that do not support negotiation, such as battery packs that can power USB powered devices; some provide power, while others pass through the data lines to a host PC. USB Power adapters convert utility power and/or power from a car's electrical system to run attached devices. Some of these devices can supply up to 1 A of current. Without negotiation, the powered USB device is unable to inquire if it is allowed to draw 100 mA, 500 mA, or 1 A.

PoweredUSB
PoweredUSB uses standard USB signaling with the addition of extra power lines. It uses 4 additional pins to supply up to 6A at either 5V, 12V, or 24V (depending on keying) to peripheral devices. The wires and contacts on the USB portion have been upgraded to support higher current on the 5V line, as well. This is commonly used in retail systems and provides enough power to operate stationary barcode scanners, printers, pin pads, signature capture devices, etc. This standard was developed by IBM, NCR, and FCI/Berg. It is essentially two connectors stacked such that the bottom connector accepts a standard USB plug and the top connector takes a power connector.

USB compared with FireWire
USB was originally seen as a complement to FireWire (IEEE 1394), which was designed as a high-speed serial bus which could efficiently interconnect peripherals such as hard disks, audio interfaces, and video equipment. USB originally operated at a far lower data rate and used much simpler hardware, and was suitable for small peripherals such as keyboards and mice. The most significant technical differences between FireWire and USB include the following:
* USB networks use a tiered-star topology, while FireWire networks use a repeater-based topology.
* USB uses a "speak-when-spoken-to" protocol; peripherals cannot communicate with the host unless the host specifically requests communication. A FireWire device can communicate with any other node at any time, subject to network conditions.
* A USB network relies on a single host at the top of the tree to control the network. In a FireWire network, any capable node can control the network.
* USB runs with a 5v power line, whereas Firewire can supply up to 30v. This allows for faster transfers and charging of more power-hungry devices.

These and other differences reflect the differing design goals of the two buses: USB was designed for simplicity and low cost, while FireWire was designed for high performance, particularly in time-sensitive applications such as audio and video. Although similar in theoretical maximum transfer rate, in real-world use, especially for high-bandwidth use such as external hard-drives, FireWire 400 generally, but not always, has a significantly higher throughput than USB 2.0 Hi-Speed. The newer FireWire 800 standard is twice as fast as FireWire 400 and outperforms USB 2.0 Hi-Speed both theoretically and practically. The chipset and drivers used to implement USB and Firewire have a crucial impact on how much of bandwidth prescribed by the specification is achieved in the real world, along with compatibility with peripherals. Audio peripherals in particular are affected by the USB driver implementation. One reason USB supplanted FireWire, and became far more widespread, is cost; FireWire is more expensive to implement, producing more expensive hardware.

Version history
* USB 0.7: Released in November 1994.
* USB 0.8: Released in December 1994.
* USB 0.9: Released in April 1995.
* USB 0.99: Released in August 1995.
* USB 1.0 Release Candidate: Released in November 1995.

USB 1.0
* USB 1.0: Released in January 1996.
Specified data rates of 1.5 Mbit/s (Low-Speed) and 12 Mbit/s (Full-Speed). Did not anticipate or pass-through monitors. Few such devices actually made it to market.
* USB 1.1: Released in September 1998.
Fixed problems identified in 1.0, mostly relating to hubs. Earliest revision to be widely adopted.

USB 2.0
* USB 2.0: Released in April 2000.
Added higher maximum speed of 480 Mbit/s (now called Hi-Speed). Further modifications to the USB specification have been done via Engineering Change Notices (ECN). The most important of these ECNs are included into the USB 2.0 specification package available from USB.org:
o Mini-B Connector ECN: Released in October 2000.
Specifications for Mini-B plug and receptacle. These should not be confused with Micro-B plug and receptacle.
o Errata as of December 2000: Released in December 2000.
o Pull-up/Pull-down Resistors ECN: Released in May 2002.
o Errata as of May 2002: Released in May 2002.
o Interface Associations ECN: Released in May 2003.
New standard descriptor was added that allows multiple interfaces to be associated with a single device function.
o Rounded Chamfer ECN: Released in October 2003.
A recommended, compatible change to Mini-B plugs that results in longer lasting connectors.
o Unicode ECN: Released in February 2005.
This ECN specifies that strings are encoded using UTF-16LE. USB 2.0 did specify that Unicode is to be used but it did not specify the encoding.
o Inter-Chip USB Supplement: Released in March 2006.
o On-The-Go Supplement 1.3: Released in December 2006.
USB On-The-Go makes it possible for two USB devices to communicate with each other without requiring a separate USB host. In practice, one of the USB devices acts as a host for the other device.
o Battery Charging Specification 1.0: Released in March 2007.
Adds support for dedicated chargers (power supplies with USB connectors), host chargers (USB hosts that can act as chargers) and the No Dead Battery provision which allows devices to temporarily draw 100 mA current after they have been attached. If a USB device is connected to dedicated charger or host charger, maximum current drawn by the device may be as high as 1.5 A. (Note that this document is not distributed with USB 2.0 specification package.)
o Micro-USB Cables and Connectors Specification 1.01: Released in April 2007.
o Link Power Management Addendum ECN: Released in July 2007.
This adds a new power state between enabled and suspended states. Device in this state is not required to reduce its power consumption. However, switching between enabled and sleep states is much faster than switching between enabled and suspended states, which allows devices to sleep while idle.
o High-Speed Inter-Chip USB Electrical Specification Revision 1.0: Released in September 2007.

USB 3.0
* USB 3.0 (Future version): On September 18, 2007, Pat Gelsinger demonstrated USB 3.0 at the fall Intel Developer Forum. USB 3.0 is targeted at ten times the current bandwidth, reaching roughly 4.8 Gbit/s by utilizing two additional high-speed differential pairs for "Superspeed" mode, and with the possibility for optical interconnect. The USB 3.0 specification is planned to be released in the first half of 2008, commercial products are expected to arrive in 2009 or 2010.
* Backwards-Compatibility and Efficiency: USB 3.0 is designed to be backwards-compatible with USB 2.0 and USB 1.1 and employs more efficient protocols to conserve power.

Related technologies
The PictBridge standard allows for interconnecting consumer imaging devices. It typically uses USB as the underlying communication layer.
The USB Implementers Forum is working on a wireless networking standard based on the USB protocol. Wireless USB is intended as a cable-replacement technology, and will use ultra-wideband wireless technology for data rates of up to 480 Mbit/s. Wireless USB is well suited to wireless connection of PC centric devices, just as Bluetooth is now widely used for mobile phone centric personal networks (at much lower data rates).

Baca Selanjutnya - Universal Serial Bus

Minggu, April 13, 2008

Operating System 0

An operating system (OS) is software that manages computer resources and provides programmers with an interface used to access those resources. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system. An operating system performs basic tasks such as controlling and allocating memory, prioritizing system requests, controlling input and output devices, facilitating computer networking and managing files. Operating systems can be found on almost anything made with integrated circuts, such as personal computers, internet servers, cellphones, music players, routers, switches, wireless access points, network storage, game consoles, digital cameras, sewing machines and telescopes. In most cases, the operating system is not the first code to run on the computer at startup (boot) time. The initial code executing on the computer is usually loaded from firmware, which is stored in Flash ROM. This is sometimes called the BIOS or boot ROM. The firmware loads and executes the operating system kernel (usually from disk, sometimes over the network), and is usually responsible for the first graphics or text output the user sees onscreen. Common contemporary desktop OSes are Linux, Mac OS X, Microsoft Windows and Solaris. Windows is most popular on desktops while Linux is most popular in server environments. Linux, Mac OS X and MS Windows all have server and personal variants. With the exception of Microsoft Windows, the designs of each of the aforementioned OSs were inspired by, or directly inherited from, the Unix operating system. Unix was developed at Bell Labs beginning in the late 1960s and spawned the development of numerous free and proprietary operating systems. Many users equate the desktop environment with the underlying operating system.

Process management
A program running on a computer, whether visible to the user or not, is commonly referred to as a process. Process management refers to the facilities provided by the OS to support the creation, execution, and destruction of processes. Creating a process involves allocating memory space for the process (using the memory management facilities -- see Memory Management, below), loading the program's executable code into memory, telling the scheduler to run the program, and other tasks specific to the operating system. The scheduler is the portion of the operating system that causes the program to be executed on the CPU, that is, 'scheduled' for execution. If the scheduler supports preemptive multitasking, it can change the program currently executing on the CPU to that of another program when it determines that the first program has executed for a predetermined amount of time. The amount of time allocated to a given process may depend on the needs of the process in question and the user's priority level for that process. Destroying a process involves releasing any resources (including dynamically allocated memory, file references, and I/O ports) held by the program and ensuring that a different program is scheduled for execution. Depending on the operating system, process management can be more simple or more complex than treated above. Several examples will illustrate:

* The operating systems originally deployed on mainframes, and, much later, the original microcomputer operating systems, only supported one program at a time, requiring only a very basic scheduler. Each program was in complete control of the machine while it was running. Multitasking (timesharing) first came to mainframes in the 1960's and to microcomputers in the mid-1980's, although, in both cases, for the most part, it wasn't until years later that the capability was perfected and made widely available.
* Classic Mac OS generally supported only cooperative multitasking, Application programs running with classic Mac OS must yield CPU time to the scheduler by calling a special function for that purpose.
* Classic AmigaOS did not properly track resources allocated by processes at runtime. If a process had to be terminated, the resources would be lost to programs run in the future, until the machine was restarted.

Memory management
Current computer architectures arrange the computer's system in a hierarchical manner starting from the fastest: registers, CPU cache, random access memory and disk storage. An operating system's disk manager coordinates the use of these various types of memory by tracking which one is available, which is to be allocated or deallocated and how to move data between them. This activity, usually referred to as virtual memory management, increases the amount of memory available for each process by making the disk storage seem like main memory. There is a speed penalty associated with using disks or other slower storage as memory – if running processes require significantly more RAM than is available, the system may start thrashing. This can happen either because one process requires a large amount of RAM or because two or more processes compete for a larger amount of memory than is available. This then leads to constant transfer of each process's data to slower storage. Another important part of memory management is managing virtual addresses. If multiple processes are in memory at once, they must be prevented from interfering with each other's memory (unless there is an explicit request to utilize shared memory). This is achieved by having separate address spaces. Each process sees the whole virtual address space, typically from address 0 up to the maximum size of virtual memory, as uniquely assigned to it. The operating system maintains a page table that match virtual addresses to physical addresses. These memory allocations are tracked so that when a process terminates, all memory used by that process can be made available for other processes. The operating system can also write inactive memory pages to secondary storage. This process is called "paging" or "swapping" – the terminology varies between operating systems. It is also typical for operating systems to employ otherwise unused physical memory as a page cache; requests for data from a slower device can be retained in memory to improve performance. The operating system can also preload the in-memory cache with data that may be requested by the user in the near future; SuperFetch is an example of this.

Disk and file systems
Generally, operating systems include support for file systems, which allow the user to segment a given area of memory (sometimes RAM, but usually a disk) into individual files. Modern file systems comprise a hierarchy of directories. While the idea is conceptually similar across all general-purpose file systems, some differences in implementation exist. Two noticeable examples of this are the character used to separate directories, and case sensitivity. Unix demarcates its path components with a slash (/), a convention followed by operating systems that emulated it or at least its concept of hierarchical directories, such as Linux, Amiga OS and Mac OS X. MS-DOS also emulated this feature, but had already also adopted the CP/M convention of using slashes for additional options to commands, so instead used the backslash (\) as its component separator. Microsoft Windows continues with this convention; Japanese editions of Windows use ¥. Prior to Mac OS X, versions of Mac OS use a colon (:) for a path separator. RISC OS uses a period (.). Unix and Unix-like operating systems allow for any character in file names other than the slash and NUL characters (including line feed (LF) and other control characters). Unix file names are case sensitive, which allows multiple files to be created with names that differ only in case. By contrast, Microsoft Windows file names are not case sensitive by default. Windows also has a larger set of punctuation characters that are not allowed in file names. File systems may provide journaling, which provides safe recovery in the event of a system crash. A journaled file system writes information twice: first to the journal, which is a log of file system operations, then to its proper place in the ordinary file system. In the event of a crash, the system can recover to a consistent state by replaying a portion of the journal. In contrast, non-journaled file systems typically need to be examined in their entirety by a utility such as fsck or chkdsk. Soft updates is an alternative to journaling that avoids the redundant writes by carefully ordering the update operations. Log-structured file systems and ZFS also differ from traditional journaled file systems in that they avoid inconsistencies by always writing new copies of the data, eschewing in-place updates.

Many Linux distributions support some or all of ext2, ext3, ReiserFS, Reiser4, GFS, GFS2, OCFS, OCFS2, and NILFS. Linux also has full support for XFS and JFS, along with the FAT file systems, and NTFS. Microsoft Windows includes support for FAT12, FAT16, FAT32, and NTFS. The NTFS file system is the most efficient and reliable of the four Windows file systems, and as of Windows Vista, is the only file system which the operating system can be installed on. Windows Embedded CE 6.0 introduced ExFAT, a file system suitable for flash drives. Mac OS X supports HFS+ with journaling as its primary file system. It is derived from the Hierarchical File System of the earlier Mac OS. Mac OS X has facilities to read and write FAT16, FAT32, NTFS, UDF, and other file systems, but cannot be installed to them. Common to all these (and other) operating systems is support for file systems typically found on removable media. FAT12 is the file system most commonly found on floppy discs. ISO 9660 and Universal Disk Format are two common formats that target Compact Discs and DVDs, respectively. Mount Rainier is a newer extension to UDF supported by Linux 2.6 kernels and Windows Vista that facilitates rewriting to DVDs in the same fashion as has been possible with floppy disks.

Networking
Current operating systems generally support a variety of networking protocols. Most are capable of using the TCP/IP networking protocols. This means that computers running dissimilar operating systems can participate in a common network for sharing resources such as computing, files, printers, and scanners using either wired or wireless connections. Many operating systems also support one or more vendor-specific legacy networking protocols as well, for example, SNA on IBM systems, DECnet on systems from Digital Equipment Corporation, and Microsoft-specific protocols on Windows. Specific protocols for specific tasks may also be supported such as NFS for file access.

Security
Many operating systems include some level of security. Security is based on the two ideas that:
* The operating system provides access to a number of resources, directly or indirectly, such as files on a local disk, privileged system calls, personal information about users, and the services offered by the programs running on the system;
* The operating system is capable of distinguishing between some requesters of these resources who are authorized (allowed) to access the resource, and others who are not authorized (forbidden). While some systems may simply distinguish between "privileged" and "non-privileged", systems commonly have a form of requester identity, such as a user name. Requesters, in turn, divide into two categories:
o Internal security: an already running program. On some systems, once a program is running it has no limitations, but commonly the program has an identity which it keeps and is used to check all of its requests for resources.
o External security: a new request from outside the computer, such as a login at a connected console or some kind of network connection. To establish identity there may be a process of authentication. Often a username must be quoted, and each username may have a password. Other methods of authentication, such as magnetic cards or biometric data, might be used instead. In some cases, especially connections from the network, resources may be accessed with no authentication at all.

In addition to the allow/disallow model of security, a system with a high level of security will also offer auditing options. These would allow tracking of requests for access to resources (such as, "who has been reading this file?"). Security of operating systems has long been a concern because of highly sensitive data held on computers, both of a commercial and military nature. The United States Government Department of Defense (DoD) created the Trusted Computer System Evaluation Criteria (TCSEC) which is a standard that sets basic requirements for assessing the effectiveness of security. This became of vital importance to operating system makers, because the TCSEC was used to evaluate, classify and select computer systems being considered for the processing, storage and retrieval of sensitive or classified information.

Internal security
Internal security can be thought of as protecting the computer's resources from the programs concurrently running on the system. Most operating systems set programs running natively on the computer's processor, so the problem arises of how to stop these programs doing the same task and having the same privileges as the operating system (which is after all just a program too). Processors used for general purpose operating systems generally have a hardware concept of privilege. Generally less privileged programs are automatically blocked from using certain hardware instructions, such as those to read or write from external devices like disks. Instead, they have to ask the privileged program (operating system kernel) to read or write. The operating system therefore gets the chance to check the program's identity and allow or refuse the request. An alternative strategy, and the only sandbox strategy available in systems that do not meet the Popek and Goldberg virtualization requirements, is the operating system not running user programs as native code, but instead either emulates a processor or provides a host for a p-code based system such as Java. Internal security is especially relevant for multi-user systems; it allows each user of the system to have private files that the other users cannot tamper with or read. Internal security is also vital if auditing is to be of any use, since a program can potentially bypass the operating system, inclusive of bypassing auditing.

External security
Typically an operating system offers (or hosts) various services to other network computers and users. These services are usually provided through ports or numbered access points beyond the operating system's network address. Services include offerings such as file sharing, print services, email, web sites, and file transfer protocols (FTP), most of which can have compromised security. At the front line of security are hardware devices known as firewalls or intrusion detection/prevention systems. At the operating system level, there are a number of software firewalls available, as well as intrusion detection/prevention systems. Most modern operating systems include a software firewall, which is enabled by default. A software firewall can be configured to allow or deny network traffic to or from a service or application running on the operating system. Therefore, one can install and be running an insecure service, such as Telnet or FTP, and not have to be threatened by a security breach because the firewall would deny all traffic trying to connect to the service on that port.

Graphical user interfaces
Today, most modern computer systems contain Graphical User Interfaces. In some computer systems the GUI is integrated into the kernel—for example, in the original implementations of Microsoft Windows and Mac OS, the graphical subsystem was actually part of the kernel. Other operating systems, some older ones and some modern ones, are modular, separating the graphics subsystem from the kernel and the Operating System. In the 1980's UNIX, VMS and many others had operating systems that were built this way. Today Linux, and Mac OS X are also built this way. Many computer systems allow the user to install or create any user interface they desire. The X Window System in conjunction with GNOME or KDE is a commonly found setup on most Unix and Unix-like (BSD, Linux, Minix) systems. Numerous Unix-based GUIs have existed over time, most derived from X11. Competition among the various vendors of Unix (HP, IBM, Sun) led to much fragmentation, though an effort to standardize in the 1990s to COSE and CDE failed for the most part due to various reasons, eventually eclipsed by the widespread adoption of GNOME and KDE. Prior to open source-based toolkits and desktop environments, Motif was the prevalent toolkit/desktop combination (and was the basis upon which CDE was developed). Graphical user interfaces evolve over time. For example, Windows has modified its user interface almost every time a new major version of Windows is released, and the Mac OS GUI changed dramatically with the introduction of Mac OS X in 2001.

Device drivers
A device driver is a specific type of computer software developed to allow interaction with hardware devices. Typically this constitutes an interface for communicating with the device, through the specific computer bus or communications subsystem that the hardware is connected to, providing commands to and/or receiving data from the device, and on the other end, the requisite interfaces to the operating system and software applications. It is a specialized hardware-dependent computer program which is also operating system specific that enables another program, typically an operating system or applications software package or computer program running under the operating system kernel, to interact transparently with a hardware device, and usually provides the requisite interrupt handling necessary for any necessary asynchronous time-dependent hardware interfacing needs. The key design goal of device drivers is abstraction. Every model of hardware (even within the same class of device) is different. Newer models also are released by manufacturers that provide more reliable or better performance and these newer models are often controlled differently. Computers and their operating systems cannot be expected to know how to control every device, both now and in the future. To solve this problem, OSes essentially dictate how every type of device should be controlled. The function of the device driver is then to translate these OS mandated function calls into device specific calls. In theory a new device, which is controlled in a new manner, should function correctly if a suitable driver is available. This new driver will ensure that the device appears to operate as usual from the operating systems' point of view for any person.

History
The first computers did not have operating systems. By the early 1960s, commercial computer vendors were supplying quite extensive tools for streamlining the development, scheduling, and execution of jobs on batch processing systems. Examples were produced by UNIVAC and Control Data Corporation, amongst others.

Mainframes
Through the 1960s, many major features were pioneered in the field of operating systems. The development of the IBM System/360 produced a family of mainframe computers available in widely differing capacities and price points, for which a single operating system OS/360 was planned (rather than developing ad-hoc programs for every individual model). This concept of a single OS spanning an entire product line was crucial for the success of System/360 and, in fact, IBM's current mainframe operating systems are distant descendants of this original system; applications written for the OS/360 can still be run on modern machines. OS/360 also contained another important advance: the development of the hard disk permanent storage device (which IBM called DASD). Control Data Corporation developed the SCOPE operating system in the 1960s, for batch processing. In cooperation with the University of Minnesota, the KRONOS and later the NOS operating systems were developed during the 1970s, which supported simultaneous batch and timesharing use. Like many commercial timesharing systems, its interface was an extension of the Dartmouth BASIC operating systems, one of the pioneering efforts in timesharing and programming languages. In the late 1970s, Control Data and the University of Illinois developed the PLATO operating system, which used plasma panel displays and long-distance time sharing networks. Plato was remarkably innovative for its time, featuring real-time chat, and multi-user graphical games. Burroughs Corporation introduced the B5000 in 1961 with the MCP, (Master Control Program) operating system. The B5000 was a stack machine designed to exclusively support high-level languages with no machine language or assembler and indeed the MCP was the first OS to be written exclusively in a high-level language (ESPOL, a dialect of ALGOL). MCP also introduced many other ground-breaking innovations, such as being the first commercial implementation of virtual memory. MCP is still in use today in the Unisys ClearPath/MCP line of computers.

UNIVAC, the first commercial computer manufacturer, produced a series of EXEC operating systems. Like all early main-frame systems, this was a batch-oriented system that managed magnetic drums, disks, card readers and line printers. In the 1970s, UNIVAC produced the Real-Time Basic (RTB) system to support large-scale time sharing, also patterned after the Dartmouth BASIC system. General Electric and MIT developed General Electric Comprehensive Operating Supervisor (GECOS), which introduced the concept of ringed security privilege levels. After acquisition by Honeywell it was renamed to General Comprehensive Operating System (GCOS). Digital Equipment Corporation developed many operating systems for its various computer lines, including TOPS-10 and TOPS-20 time sharing systems for the 36-bit PDP-10 class systems. Prior to the widespread use of UNIX, TOPS-10 was a particularly popular system in universities, and in the early ARPANET community. In the late 1960s through the late 1970s, several hardware capabilities evolved that allowed similar or ported software to run on more than one system. Early systems had utilized microprogramming to implement features on their systems in order to permit different underlying architecture to appear to be the same as others in a series. In fact most 360's after the 360/40 (except the 360/165 and 360/168) were microprogrammed implementations. But soon other means of achieving application compatibility were proven to be more significant. The enormous investment in software for these systems made since 1960s caused most of the original computer manufacturers to continue to develop compatible operating systems along with the hardware. The notable supported mainframe operating systems include:
* Burroughs MCP -- B5000,1961 to Unisys Clearpath/MCP, present.
* IBM OS/360 -- IBM System/360, 1964 to IBM z/OS, present.
* IBM CP-67 -- IBM System/360, 1967 to IBM z/VM, present.
* UNIVAC EXEC 8 -- UNIVAC 1108, 1964, to Unisys Clearpath IX, present.

Microcomputers
The first microcomputers did not have the capacity or need for the elaborate operating systems that had been developed for mainframes and minis; minimalistic operating systems were developed, often loaded from ROM and known as Monitors. One notable early disk-based operating system was CP/M, which was supported on many early microcomputers and was closely imitated in MS-DOS, which became wildly popular as the operating system chosen for the IBM PC (IBM's version of it was called IBM-DOS or PC-DOS), its successors making Microsoft one of the world's most profitable companies. In the 80's Apple Computer Inc. (now Apple Inc.) abandoned its popular Apple II series of microcomputers to introduce the Apple Macintosh computer with the an innovative Graphical User Interface (GUI) to the Mac OS. The introduction of the Intel 80386 CPU chip with 32-bit architecture and paging capabilities, provided personal computers with the ability to run multitasking operating systems like those of earlier minicomputers and mainframes. Microsoft's responded to this progress by hiring Dave Cutler, who had developed the VMS operating system for Digital Equipment Corporation. He would lead the development of the Windows NT operating system, which continues to serve as the basis for Microsoft's operating systems line. Steve Jobs, a co-founder of Apple Inc., started NeXT Computer Inc., which developed the Unix-like NEXTSTEP operating system. NEXTSTEP would later be acquired by Apple Inc. and used, along with code from FreeBSD as the core of Mac OS X. Minix, an academic teaching tool which could be run on early PCs, would inspire another reimplementation of Unix, called Linux. Started by computer student Linus Torvalds with cooperation from volunteers over the internet, developed a kernel which was combined with the tools from the GNU Project. The Berkeley Software Distribution, known as BSD, is the UNIX derivative distributed by the University of California, Berkeley, starting in the 1970s. Freely distributed and ported to many minicomputers, it eventually also gained a following for use on PCs, mainly as FreeBSD, NetBSD and OpenBSD.

Some Operating Systems
Microsoft Windows
The Microsoft Windows family of operating systems originated as an add-on to the older MS-DOS operating system for the IBM PC. Modern versions are based on the newer Windows NT kernel that was originally intended for OS/2 and borrowed from VMS. Windows runs on x86, x86-64 and Itanium processors. Earlier versions also ran on the DEC Alpha, MIPS, Fairchild (later Intergraph) Clipper and PowerPC architectures (some work was done to port it to the SPARC architecture). As of September 2007, Microsoft Windows holds a large amount of the worldwide desktop market share. Windows is also used on servers, supporting applications such as web servers and database servers. In recent years, Microsoft has spent significant marketing and research & development money to demonstrate that Windows is capable of running any enterprise application, which has resulted in consistent price/performance records (see the TPC) and significant acceptance in the enterprise market. The most widely used version of the Microsoft Windows family is Windows XP, released on October 25, 2001.
In November 2006, after more than five years of development work, Microsoft released Windows Vista, a major new operating system version of Microsoft Windows family which contains a large number of new features and architectural changes. Chief amongst these are a new user interface and visual style called Windows Aero, a number of new security features such as User Account Control, and few new multimedia applications such as Windows DVD Maker. Microsoft has announced a new version codenamed Windows 7 will be released in late 2009 - mid 2010

Plan 9
Ken Thompson, Dennis Ritchie and Douglas McIlroy at Bell Labs designed and developed the C programming language to build the operating system Unix. Programmers at Bell Labs went on to develop Plan 9 and Inferno, which were engineered for modern distributed environments. Plan 9 was designed from the start to be a networked operating system, and had graphics built-in, unlike Unix, which added these features to the design later. Plan 9 has yet to become as popular as Unix derivatives, but it has an expanding community of developers. It is currently released under the Lucent Public License. Inferno was sold to Vita Nuova Holdings and has been released under a GPL/MIT license.

Unix and Unix-like operating systems
Ken Thompson wrote B, mainly based on BCPL, which he used to write Unix, based on his experience in the MULTICS project. B was replaced by C, and Unix developed into a large, complex family of inter-related operating systems which have been influential in every modern operating system . The Unix-like family is a diverse group of operating systems, with several major sub-categories including System V, BSD, and Linux. The name "UNIX" is a trademark of The Open Group which licenses it for use with any operating system that has been shown to conform to their definitions. "Unix-like" is commonly used to refer to the large set of operating systems which resemble the original Unix. Unix-like systems run on a wide variety of machine architectures. They are used heavily for servers in business, as well as workstations in academic and engineering environments. Free software Unix variants, such as GNU, Linux and BSD, are popular in these areas. The market share for Linux is divided between many different distributions. Enterprise class distributions by Red Hat or Novell are used by corporations, but some home users may use those products. Historically home users typically installed a distribution themselves, but in 2007 Dell began to offer the Ubuntu Linux distribution on home PCs. Linux on the desktop is also popular in the developer and hobbyist operating system development communities. Market share statistics for freely available operating systems are usually inaccurate since most free operating systems are not purchased, making usage under-represented. On the other hand, market share statistics based on total downloads of free operating systems are often inflated, as there is no economic disincentive to acquire multiple operating systems so users can download multiple systems, test them, and decide which they like best. Some Unix variants like HP's HP-UX and IBM's AIX are designed to run only on that vendor's hardware. Others, such as Solaris, can run on multiple types of hardware, including x86 servers and PCs. Apple's Mac OS X, a hybrid kernel-based BSD variant derived from NeXTSTEP, Mach, and FreeBSD, has replaced Apple's earlier (non-Unix) Mac OS. Unix interoperability was sought by establishing the POSIX standard. The POSIX standard can be applied to any operating system, although it was originally created for various Unix variants.

Mac OS X
Mac OS X is a line of proprietary, graphical operating systems developed, marketed, and sold by Apple Inc., the latest of which is pre-loaded on all currently shipping Macintosh computers. Mac OS X is the successor to the original Mac OS, which had been Apple's primary operating system since 1984. Unlike its predecessor, Mac OS X is a UNIX operating system built on technology that had been developed at NeXT through the second half of the 1980s and up until Apple purchased the company in early 1997. The operating system was first released in 1999 as Mac OS X Server 1.0, with a desktop-oriented version (Mac OS X v10.0) following in March 2001. Since then, five more distinct "end-user" and "server" editions of Mac OS X have been released, the most recent being Mac OS X v10.5, which was first made available in October 2007. Releases of Mac OS X are named after big cats; Mac OS X v10.5 is usually referred to by Apple and users as "Leopard". The server edition, Mac OS X Server, is architecturally identical to its desktop counterpart but usually runs on Apple's line of Macintosh server hardware. Mac OS X Server includes workgroup management and administration software tools that provide simplified access to key network services, including a mail transfer agent, a Samba server, an LDAP server, a domain name server, and others.

Embedded systems
Embedded systems use a variety of dedicated operating systems. In some cases, the "operating system" software is directly linked to the application to produce a monolithic special-purpose program. In the simplest embedded systems, there is no distinction between the OS and the application. Embedded systems that have certain time requirements are known as real-time operating systems. Operating systems such as VxWorks, eCos, and Palm OS, are unrelated to Unix and Windows. Windows CE shares similar APIs to desktop Windows but shares none of desktop Windows' codebase, and several embedded BSD and Linux distributions exist.

Hobby operating system development
Operating system development, or OSDev for short, as a hobby has a large cult-like following. As such, operating systems, such as Linux, have derived from hobby operating system projects. The design and implementation of an operating system requires skill and determination, and the term can cover anything from a basic "Hello World" boot loader to a fully featured kernel. One classical example of this is the Minix Operating System—an OS that was designed as a teaching tool but was heavily used by hobbyists before Linux eclipsed it in popularity.

Other
Older operating systems which are still used in niche markets include OS/2 from IBM; Mac OS, the non-Unix precursor to Apple's Mac OS X; BeOS; XTS-300. Some, most notably AmigaOS and RISC OS, continue to be developed as minority platforms for enthusiast communities and specialist applications. OpenVMS formerly from DEC, is still under active development by Hewlett-Packard. Research and development of new operating systems continues. GNU Hurd is designed to be backwards compatible with Unix, but with enhanced functionality and a microkernel architecture. Singularity is a project at Microsoft Research to develop an operating system with better memory protection based on the .Net managed code model.

Baca Selanjutnya - Operating System

Mozilla Firefox 0

Mozilla Firefox (abbreviated officially as Fx, but also unofficially as FF) is a web browser descended from the Mozilla Application Suite, managed by the Mozilla Corporation. It has been named as the best web browser annually since 2005 by PC Magazine. Firefox had 17% of the recorded usage share of Web browsers as of January 2008, making it the second-most popular browser in current use worldwide after Internet Explorer. Firefox uses the open-source Gecko layout engine, which implements some current Web standards plus a few features which are intended to anticipate likely additions to the standards. Firefox includes tabbed browsing, a spell checker, incremental find, live bookmarking, a download manager, and an integrated search system that uses the user's desired search engine. Functions can be added through around 2,000 add-ons created by third party developers; the most popular include NoScript (script blocker), FoxyTunes (controls music players), Adblock Plus (ad blocker), StumbleUpon (website discovery), DownThemAll! (download functions) and Web Developer (web tools). Firefox runs on various versions of Microsoft Windows, Mac OS X, Linux, and many other Unix-like operating systems. Its current stable release is version 2.0.0.13, released on March 25, 2008. Firefox's source code is free software, released under a tri-license GPL/LGPL/MPL.

History
Dave Hyatt and Blake Ross began working on the Firefox project as an experimental branch of the Mozilla project. They believed the commercial requirements of Netscape's sponsorship and developer-driven feature creep compromised the utility of the Mozilla browser. To combat what they saw as the Mozilla Suite's software bloat, they created a stand-alone browser, with which they intended to replace the Mozilla Suite. On April 3, 2003, the Mozilla Organization announced that they planned to change their focus from the Mozilla Suite to Firefox and Thunderbird. The Firefox project has undergone several name changes. Originally titled Phoenix, it was renamed because of trademark issues with Phoenix Technologies. The replacement name, Firebird, provoked an intense response from the Firebird free database software project. In response, the Mozilla Foundation stated that the browser should always bear the name Mozilla Firebird to avoid confusion with the database software. Continuing pressure from the database server's development community forced another change; on February 9, 2004, Mozilla Firebird became Mozilla Firefox, often referred to as simply Firefox. Mozilla prefers Firefox to be abbreviated as Fx or fx, though it is often abbreviated as FF or even FX because people think it refers to FireFox instead of Firefox. The Firefox project went through many versions before 1.0 was released on November 9, 2004. In addition to stability and security fixes, the Mozilla Foundation released its first major update to Firefox version 1.5 on November 29, 2005. On October 24, 2006, Mozilla released Firefox 2. This version includes updates to the tabbed browsing environment, the extensions manager, the GUI, and the find, search and software update engines; a new session restore feature; inline spell checking; and an anti-phishing feature which was implemented by Google as an extension, and later merged into the program itself. In December 2007, Firefox Live Chat was launched. It allows users to ask volunteers questions through a system powered by Jive Software, with guaranteed hours of operation and the possibility of help after hours.

Features
Features included with Firefox are tabbed browsing, spell checker, incremental find, live bookmarking, an integrated download manager, and an integrated search system that uses the user's desired search engine. The developers of Firefox aimed to produce a browser that "just surfs the web" and delivers the "best possible browsing experience to the widest possible set of people. Users can customize Firefox with extensions and themes. Mozilla maintains an add-on repository at addons.mozilla.org with nearly 2000 add-ons in it as of September 2007. Firefox provides an environment for web developers in which they can use built-in tools, such as the Error Console or the DOM Inspector, or extensions, such as Firebug.

Standards support
Mozilla Firefox supports many web standards, including HTML, XML, XHTML, SVG 1.1 (partial), CSS (with extensions), ECMAScript (JavaScript), DOM, MathML, DTD, XSLT, XPath, and PNG images with alpha transparency. Firefox also supports standards proposals created by the WHATWG such as client-side storage, and canvas element.Although Firefox 2 does not pass the Acid2 standards-compliance test, all releases since Firefox 3.0 Alpha 2 do.

Security
Firefox uses a sandbox security model, and limits scripts from accessing data from other web sites based on the same origin policy. It uses SSL/TLS to protect communications with web servers using strong cryptography when using the https protocol. It also provides support for web applications to use smartcards for authentication purposes. The Mozilla Foundation offers a "bug bounty" to researchers who discover severe security holes in Firefox. Official guidelines for handling security vulnerabilities discourage early disclosure of vulnerabilities so as not to give potential attackers an advantage in creating exploits. Because Firefox has fewer and less severe publicly known unpatched security vulnerabilities than Internet Explorer (see Comparison of web browsers), improved security is often cited as a reason to switch from Internet Explorer to Firefox. The Washington Post reports that exploit code for critical unpatched security vulnerabilities in Internet Explorer was available for 284 days in 2006. In comparison, exploit code for critical security vulnerabilities in Firefox was available for 9 days before Mozilla shipped a patch to remedy the problem. A 2006 Symantec study showed that although Firefox had surpassed other browsers in the number of vendor-confirmed vulnerabilities that year through September, these vulnerabilities were patched far more quickly than those found in other browsers. Symantec later clarified their statement, saying that Firefox still had fewer security vulnerabilities than Internet Explorer, as counted by security researchers. As of March 26, 2008, Firefox 2 has four security vulnerabilities unpatched, the most severe of which was rated "less critical" by Secunia. Internet Explorer has eight security vulnerabilities unpatched, the most severe of which was rated "Moderately critical" by Secunia.

Licensing
Firefox is free and open source software, and is tri-licensed under the Mozilla Public License (MPL), GNU General Public License (GPL), and the GNU Lesser General Public License (LGPL). These licenses permit anyone to view, modify and/or redistribute the source code, and several publicly released applications have been built on it; for example, Netscape, Flock and Songbird make use of code from Firefox. The official end-user builds of Firefox distributed from mozilla.com are licensed under the Mozilla EULA. Several elements do not fall under the scope of the tri-license and have their use restricted by the EULA, including the trademarked Firefox name and artwork, and the proprietary closed-source Talkback crash reporter. Because of this and the clickwrap agreement included in the Windows version, the Free Software Foundation (FSF) consider these builds proprietary software. However, BreakPad, an open source crash reporting system, is expected to replace Talkback and is planned for Firefox 3.0. According to plans, Firefox 3.0 will be the first version of Firefox that is fully open source. In the past, Firefox was licensed solely under the MPL, which the FSF criticizes for being weak copyleft; the license permits, in limited ways, proprietary derivative works. Additionally, code under the MPL cannot legally be linked with code under the GPL or the LGPL. To address these concerns, Mozilla re-licensed Firefox under the tri-license scheme of MPL, GPL, and LGPL. Since the re-licensing, developers have been free to choose the license under which they will receive the code, to suit their intended use: GPL or LGPL linking and derivative works when one of those licenses is chosen, or MPL use (including the possibility of proprietary derivative works) if they choose the MPL.

Trademark and logo issues
The name "Mozilla Firefox" is a registered trademark; along with the official Firefox logo, it may only be used under certain terms and conditions. Anyone may redistribute the official binaries in unmodified form and use the Firefox name and branding for such distribution, but restrictions are placed on distributions which modify the underlying source code. There has been some controversy over the Mozilla Foundation's intentions in stopping certain open source distributions from using the "Firefox" trademark. Mozilla CEO Mitchell Baker explained in an interview in 2007 that distributions could freely use the Firefox trademark if they did not modify source-code, and that the Mozilla Foundation's only concern was with users getting a consistent experience when they used "Firefox". To allow distributions of the code without using the official branding, the Firefox source code contains a "branding switch". This switch allows the code to be compiled without the official logo and name, for example to produce a derivative work unencumbered by restrictions on the Firefox trademark (this is also often used for betas and alphas of future Firefox versions). In the unbranded compilation the trademarked logo and name are replaced with a freely distributable generic globe logo and the name of the release series from which the modified version was derived. The name "Deer Park" is used for derivatives of Firefox 1.5, "Bon Echo" for derivatives of Firefox 2.0, and "Gran Paradiso" is used for derivatives of Firefox 3.0. Outside of certain exceptions made for "community editions", distributing modified versions of Firefox under the "Firefox" name requires explicit approval from Mozilla for the changes made to the underlying code, and requires the use of all of the official branding. For example, it is not permissible to use the name "Firefox" without also using the official logo. When the Debian project decided to stop using the official Firefox logo in 2006 (because of copyright and trademark restrictions on its use incompatible with the project's guidelines), they were told by a representative of the Mozilla Foundation that this was not acceptable, and were asked to either comply with the published trademark guidelines or cease using the "Firefox" name in their distribution. Ultimately, Debian switched to branding their modified version of Firefox "Iceweasel".

Advertising
The rapid adoption of Firefox, 100 million downloads in its first year of availability, followed a series of aggressive marketing campaigns starting in 2004 with a series of events Blake Ross and Asa Dotzler called "marketing weeks". On September 12, 2004, a marketing portal dubbed "Spread Firefox" (SFX) debuted along with the Firefox Preview Release, creating a centralized space for the discussion of various marketing techniques. The portal enhanced the "Get Firefox" button program, giving users "referrer points" as an incentive. The site lists the top 250 referrers. From time to time, the SFX team or SFX members launch marketing events organized at the Spread Firefox website. The "World Firefox Day" campaign started on July 15, 2006, the third anniversary of the founding of the Mozilla Foundation, and ran until September 15, 2006. Participants registered themselves and a friend on the website for nomination to have their names displayed on the Firefox Friends Wall, a digital wall that will be displayed at the headquarters of the Mozilla Foundation. On February 21, 2008 in honor of reaching 500 million downloads, the Firefox community celebrated by visiting FreeRice to earn 500 million grains of rice. Some of Firefox's contributors made a crop circle of the Firefox logo, which can be seen on Google Earth.

Market adoption
Mozilla Firefox's marketshare has grown for each growth period since inception, mostly at the expense of Internet Explorer. Internet Explorer has seen a steady decline of its usage share since Firefox's release. By early 2008, Firefox had around 15% global usage share of web browsers. Compared to other browsers Firefox version market share compares to 43% Internet Explorer 7, 32% Internet Explorer 6, 16% Firefox 2.0, 4% Safari 3.0, and both Fx 1.x and Internet Explorer 5.x versions at less than half a percent. An article notes at the release of Firefox 2.0 in October 2006, "IE6 had the lion's share of the browser market with 77.22%. Internet Explorer 7 had climbed to 3.18%, while Firefox 2.0 was at 0.69%." A Softpedia article noted in July 2007, "Firefox 2.0 has been also expanding its share constantly in spite of IE7. From just 0.69% in October 2006, Firefox 2.0 is now accounting for 11.07% of the market. Mozilla has even sacrificed version 1.5 of its open source browser for Firefox 2.0. With support cut at the end of June, Firefox 1.5 dropped to just 2.85%." Downloads have continued at an increasing rate since Firefox 1.0 was released in November 2004, and as of February 21, 2008 Firefox has been downloaded over 500 million times. This number does not include downloads using software updates or from third-party websites. They do not represent a user count, as one download may be installed on many machines, one person may download the software multiple times or the software may be obtained from a third-party. According to Mozilla CEO John Lilly, Firefox had about 140 million users as of February 2008.

Critical reaction
Forbes.com called Firefox the best browser in a 2004 commentary piece. PC World named Firefox the "product of the year" in 2005 on their "100 Best Products of 2005" list. After the release of Firefox 2 and Internet Explorer 7 in 2006, PC World reviewed both and declared that Firefox was the better browser. Which? Magazine named Firefox its Best Buy web browser.

Internet Week ran an article in which many readers reported high memory usage in Firefox 1.5. Mozilla developers said the higher memory use of Firefox 1.5 is at least partially an effect of the new fast backwards-and-forwards (FastBack) feature. Other known causes of memory problems are malfunctioning extensions, such as Google Toolbar and some old versions of Adblock, or plug-ins, such as older versions of Adobe Acrobat Reader. When PC Magazine compared memory usage of Firefox, Opera and Internet Explorer, they found that Firefox used approximately as much memory as the other browsers. Tests performed by PC World and Zimbra indicate that Firefox 2 uses less memory than Internet Explorer 7. Firefox 3, in testing of beta 1 version, did not use less memory than version 2, although it still used less memory than Internet Explorer 7. Like other browsers, Firefox has had a number of vulnerabilities that have affected its security, although according to CERT, not as many as Internet Explorer. Softpedia notes that Firefox takes longer to start up than other browsers, which was confirmed by browser speed tests. IE 6 also launches slightly faster than Firefox on Microsoft Windows since many of its components are built into Windows and are loaded during system startup. As a workaround for the issue, a preloader application was created that loads components of Firefox on startup, similar to Internet Explorer. A feature of Windows Vista called SuperFetch does a similar task of preloading Firefox if it is used often enough.

Relationship with Google
The Mozilla Corporation's relationship with Google has been noted in the media, especially with regards to their paid referral agreement with Google. The release of the anti-phishing protection in Firefox 2 especially raised controversy. By default, anti-phishing protection is enabled, based on a list that is updated by downloads to the user's computer about twice an hour from Google's server. The user cannot change the data provider within the GUI, and is not informed who the default data provider is. The browser also sends Google's cookie with each request for update. An additional, explicitly opt-in security feature has been added to recent builds by the Mozilla Foundation. This anti-phishing feature provides live protection by checking each visited URL with Google. Some Internet privacy advocacy groups have expressed concerns surrounding Google's possible uses of this data, though Firefox's privacy policy states that Google may not use personal information for any purposes other than the anti-phishing protection feature. In 2005, the Mozilla Foundation and Mozilla Corporation had a combined revenue of US$52.9 million, with approximately 95 percent derived from search engine royalties. In 2006, the Mozilla Foundation and Mozilla Corporation had a combined revenue of US$66.9 million, with approximately 90 percent derived from search engine royalties.

Response from Microsoft
Microsoft's head of Australian operations, Steve Vamos, stated in late 2004 that he did not see Firefox as a threat and that there was not significant demand for the feature set of Firefox among Microsoft's users. Microsoft Chairman Bill Gates has used Firefox, but he has commented "so much software gets downloaded all the time, but do people actually use it?" A Microsoft SEC filing on June 30, 2005 acknowledged that "competitors such as Mozilla offer software that competes with the Internet Explorer Web browsing capabilities of our Windows operating system products." Despite the cold reception from Microsoft's top management, the Internet Explorer development team does have a healthy relationship with Mozilla. They meet regularly to discuss web standards such as extended validation certificates. In 2005 Mozilla agreed to allow Microsoft to use its Web feed logo in the interest of common graphical representation of the Web feeds feature. In August 2006, Microsoft offered to help Mozilla integrate Firefox with the then-forthcoming Windows Vista, which Mozilla accepted. In October 2006, as congratulations for a successful ship of Firefox 2, the Internet Explorer 7 development team sent a cake to Mozilla. As a nod to the browser wars, some readers joked about the cake being poisoned, while others jokingly suggested that Mozilla send a cake back along with the recipe, in reference to the free software movement. In November 2007, Microsoft employee Jeff Jones criticized Firefox, claiming that Internet Explorer experienced fewer vulnerabilities and fewer higher severity vulnerabilities than Firefox in typical enterprise scenarios. Mozilla developer Mike Shaver discounted the study, citing Microsoft's bundling of security fixes and the study's focus on fixes, rather than vulnerabilities, as crucial flaws.

Future developments
Development of Firefox after version 2.0 is split over two milestones: version 3.0 and version 4.0. Firefox 3.0 is now in the development stage and is expected to be released in mid 2008. Development for the 3.0 releases takes place on the Mozilla trunk, with releases coming from the Mozilla 1.8.1 branch (2.0) and the Mozilla 1.9 branch (3.0).

Version 3.0
The development name for Mozilla Firefox 3 is Gran Paradiso. The precursory releases are codenamed "Minefield", as this is the name of the trunk builds. "Gran Paradiso", like other Firefox development names, is an actual place; in this case the highest mountain group in the Graian Alps. The development team has asked users to submit feature requests that they wish to be included in Firefox 3. The Mozilla Foundation released the first beta on 19 November 2007, the second beta on 18 December 2007, the third beta on 12 February 2008, the fourth beta on 10 March 2008 and the fifth and final beta was released on 2 April 2008. A final release is expected in June 2008.

Backend changes
One of the big changes in Firefox 3 is the implementation of Gecko 1.9, an updated layout engine. The new version fixes many bugs, improves standard compliance, and implements new web APIs. In particular, it will make Firefox 3 the first official release of a Mozilla browser to pass the Acid2 test, a standards-compliance test for web-page rendering. It also gets a better score on the Acid3 test than Firefox 2. The browser may use the new XULRunner technology. Some of the new features are defined in the WHATWG HTML 5 specification, such as support for web-based protocol handlers, the native implementation of getElementsByClassName method, support for safe message-passing with postMessage, support for offline web applications. Other new features include APNG support, and EXSLT support. A new internal memory allocator, jemalloc, is used rather than the default libc one. Gecko 1.9 uses cairo as a graphics backend, allowing for improved graphics performance and better consistency of look and feel on various operating systems. Because of cairo's lack of support for Windows 95, Windows 98, Windows Me and Windows NT (versions 4.0 and below), and because Microsoft ended support for Windows 98 and Windows Me on July 11, 2006, Firefox 3 will not run on those operating systems. Similarly, the Mac version of Firefox 3 will only run on Mac OS X 10.4 or higher, but, unlike previous versions, will have a native Cocoa widget interface.

Frontend changes
Work is currently in progress to make new default themes for Windows, Mac OS X and Linux, giving Firefox a more native look and feel on different operating systems. As of Firefox 3 Beta 4, themes have been created for Mac OS X, Linux, Microsoft Windows XP, and Microsoft Windows Vista. When running on the K Desktop Environment, Firefox 3 gets the icons from the environment; thus, when the desktop environment icon theme changes, Firefox follows suit. Additionally, the GTK version has reverted the non-native tab bar that was implemented in Firefox 2.0 and instead uses the native GTK+ tab style. As for the frontend changes, Firefox will feature a redesigned download manager with built-in search and the ability to resume downloads. Also, a new plug-in manager is included in the add-ons menu. Microformats are supported for use by software that can understand their use in documents to store data in a machine-readable form. The password manager in Firefox 3 will now ask the user if they would like it to remember the password after the log on attempt rather than before. By doing this users are able to avoid storing an incorrect password in the password manager after a bad log on attempt. Firefox 3 will use the new Places system for storing bookmarks and history in an SQLite backend. The new system stores more information about user's history and bookmarks, in particular letting the user tag the pages. It is also used to implement an improved algorithm for the new location bar auto-complete feature. The Mac version of Firefox 3 will support Growl notifications, and Aqua-style form controls. The default icons and icon layout for Firefox 3 will also change dramatically, and Firefox 3 will take on a keyhole shape for the forward and back buttons by default on two of the three platforms. However, the keyhole shape does not take effect in Linux or in the small-icon mode. The Iconfactory is redesigning the icons for the different supported platforms (Microsoft Windows, Mac OS X and Linux). In addition, separate icons sets were planned for Windows XP and Vista.

Version 4.0
On October 13, 2006, Brendan Eich, Mozilla's Chief Technology Officer, wrote about the plans for Mozilla 2, the platform on which Firefox 4.0 is likely to be based. These changes include improving and removing XPCOM APIs, switching to standard C++ features, just-in-time compilation with JavaScript 2 (known as the Tamarin project), tool-time and runtime security checks. It has also been announced that support for the Gopher protocol will be removed by default.

Future features
Open-source, in-browser video playback is intended to be included in Firefox, according to Mitchell Baker, Mozilla's former Chief Executive Officer. The goal is to do video playback without being encumbered by patent issues that are associated with so many video technologies. Baker also discussed the Mozilla Foundation's project to create a version of Firefox that will run reliably on mobile phones, as well as a strategy for syncing content downloaded on a PC with mobile handsets. Meanwhile, offline application support technology — similar to Google Gears — is also being built as part of Firefox. Mozilla CEO Mitchell Baker said in an interview that given so much investment has now been made in the web as a platform, in order to take it to the next step, applications must continue to work when a computer's internet connection is offline.

Awards
Mozilla Firefox had been given a number of awards by various organizations. These awards include:
* Webware 100 winner, June 2007
* PC World 100 Best Products of 2007, May 2007
* PC Magazine Editors' Choice, October 2006
* CNET Editors' Choice, October 2006
* PC World's 100 Best Products of 2006, July 2006
* PC Magazine Technical Excellence Award, Software and Development Tools category, January 2006
* PC Magazine Best of the Year Award, December 27, 2005
* PC Pro Real World Award (Mozilla Foundation), December 8, 2005
* CNET Editors' Choice, November 2005
* UK Usability Professionals' Association Award Best Software Application 2005, November 2005
* Macworld Editor's Choice with a 4.5 Mice Rating, November 2005
* Softpedia User’s Choice Award, September 2005
* TUX 2005 Readers' Choice Award, September 2005
* PC World Product of the Year, June 2005
* Forbes Best of the Web, May 2005
* PC Magazine Editor’s Choice Award, May 2005
Baca Selanjutnya - Mozilla Firefox

Linux 0

Linux (commonly pronounced IPA: in English; variants exist) is a Unix-like computer operating system. Linux is one of the most prominent examples of free software and open source development: typically all underlying source code can be freely modified, used, and redistributed by anyone. The name "Linux" comes from the Linux kernel, started in 1991 by Linus Torvalds. The system's utilities and libraries usually come from the GNU operating system, announced in 1983 by Richard Stallman. The GNU contribution is the basis for the alternative name GNU/Linux. Predominantly known for its use in servers, Linux is supported by corporations such as Dell, Hewlett-Packard, IBM, Novell, Oracle Corporation, Red Hat, and Sun Microsystems. It is used as an operating system for a wide variety of computer hardware, including desktop computers, supercomputers, video game systems, such as the PlayStation 2 and PlayStation 3, several arcade games, and embedded devices such as mobile phones, routers, and stage lighting systems.

History
The Unix operating system was conceived and implemented in the 1960s and first released in 1970. Its wide availability and portability meant that it was widely adopted, copied and modified by academic institutions and businesses, with its design being influential on authors of other systems.The GNU Project, started in 1984, had the goal of creating a "complete Unix-compatible software system" made entirely of free software. In 1985, Richard Stallman created the Free Software Foundation and developed the GNU General Public License (GNU GPL). Many of the programs required in an OS (such as libraries, compilers, text editors, a Unix shell, and a windowing system) were completed by the early 1990s, although low level elements such as device drivers, daemons, and the kernel were stalled and incomplete. Linus Torvalds has said that if the GNU kernel had been available at the time (1991), he would not have decided to write his own.

MINIX
MINIX, a Unix-like system intended for academic use, was released by Andrew S. Tanenbaum in 1987. While source code for the system was available, modification and redistribution were restricted (though that is not the case today). In addition, MINIX's 16-bit design was not well adapted to the 32-bit design of the increasingly cheap and popular Intel 386 architecture for personal computers. In 1991, Torvalds began to work on a non-commercial replacement for MINIX while he was attending the University of Helsinki. This eventually became the Linux kernel. In 1992, Tanenbaum posted an article on Usenet claiming Linux was obsolete. In the article, he criticized the operating system as being monolithic in design and being tied closely to the x86 architecture and thus not portable, as he described "a fundamental error." Tanenbaum suggested that those who wanted a modern operating system should look into one based on the microkernel model. The posting elicited the response of Torvalds and Ken Thompson, one of the founders of Unix, which resulted in a well known debate over the microkernel and monolithic kernel designs. Linux was dependent on the MINIX user space at first. With code from the GNU system freely available, it was advantageous if this could be used with the fledgling OS. Code licensed under the GNU GPL can be used in other projects, so long as they also are released under the same or a compatible license. In order to make the Linux kernel compatible with the components from the GNU Project, Torvalds initiated a switch from his original license (which prohibited commercial redistribution) to the GNU GPL. Linux and GNU developers worked to integrate GNU components with Linux to make a fully functional and free operating system.

Commercial and popular uptake
Today Linux is used in numerous domains, from embedded systems to supercomputers, and has secured a place in server installations with the popular LAMP application stack. Torvalds continues to direct the development of the kernel. Stallman heads the Free Software Foundation, which in turn supports the GNU components. Finally, individuals and corporations develop third-party non-GNU components. These third-party components comprise a vast body of work and may include both kernel modules and user applications and libraries. Linux vendors and communities combine and distribute the kernel, GNU components, and non-GNU components, with additional package management software in the form of Linux distributions.

Design
Linux is a modular Unix-like operating system. It derives much of its basic design from principles established in Unix during the 1970s and 1980s. Linux uses a monolithic kernel, the Linux kernel, which handles process control, networking, and peripheral and file system access. Device drivers are integrated directly with the kernel. Much of Linux's higher-level functionality is provided by separate projects which interface with the kernel. The GNU userland is an important part of most Linux systems, providing the shell and Unix tools which carry out many basic operating system tasks. On top these tools form a Linux system with a graphical user interface that can be used, usually running in the X Window System.

User interface
Linux can be controlled by one or more of a text-based command line interface (CLI), graphical user interface (GUI) (usually the default for desktop), or through controls on the device itself (common on embedded machines). On desktop machines, KDE, GNOME and Xfce are the most popular user interfaces, though a variety of other user interfaces exist. Most popular user interfaces run on top of the X Window System (X), which provides network transparency, enabling a graphical application running on one machine to be displayed and controlled from another. Other GUIs include X window managers such as FVWM, Enlightenment and Window Maker. The window manager provides a means to control the placement and appearance of individual application windows, and interacts with the X window system. A Linux system usually provides a CLI of some sort through a shell, which is the traditional way of interacting with a Unix system. A Linux distribution specialized for servers may use the CLI as its only interface. A “headless system” run without even a monitor can be controlled by the command line via a protocol such as SSH or telnet. Most low-level Linux components, including the GNU Userland, use the CLI exclusively. The CLI is particularly suited for automation of repetitive or delayed tasks, and provides very simple inter-process communication. A graphical terminal emulator program is often used to access the CLI from a Linux desktop.

Development
The primary difference between Linux and many other popular contemporary operating systems is that the Linux kernel and other components are free and open source software. Linux is not the only such operating system, although it is the best-known and most widely used. Some free and open source software licences are based on the principle of copyleft, a kind of reciprocity: any work derived from a copyleft piece of software must also be copyleft itself. The most common free software license, the GNU GPL, is a form of copyleft, and is used for the Linux kernel and many of the components from the GNU project. As an operating system underdog, Linux aims for interoperability with other operating systems and established computing standards. Linux systems adhere to POSIX, SUS, ISO and ANSI standards where possible. To date, however, only the Linux-FT distribution has been POSIX.1 certified. Free software projects, although developed in a collaborative fashion, are often produced independently of each other. However, given that the software licenses explicitly permit redistribution, this provides a basis for larger scale projects that collect the software produced by stand-alone projects and make it available all at once in the form of a Linux distribution. A Linux distribution, commonly called a “distro”, is a project that manages a remote collection of Linux-based software, and facilitates installation of a Linux operating system. Distributions are maintained by individuals, loose-knit teams, volunteer organizations, and commercial entities. They include system software and application software in the form of packages, and distribution-specific software for initial system installation and configuration as well as later package upgrades and installs. A distribution is responsible for the default configuration of installed Linux systems, system security, and more generally integration of the different software packages into a coherent whole.

Community
Linux is largely driven by its developer and user communities. Some vendors develop and fund their distributions on a volunteer basis, Debian being a well-known example. Others maintain a community version of their commercial distributions, as Red Hat does with Fedora. In many cities and regions, local associations known as Linux Users Groups (LUGs) seek to promote Linux and by extension free software. They hold meetings and provide free demonstrations, training, technical support, and operating system installation to new users. There are also many Internet communities that seek to provide support to Linux users and developers. Most distributions and open source projects have IRC chatrooms or newsgroups. Online forums are another means for support, with notable examples being LinuxQuestions.org and the Gentoo forums. Linux distributions host mailing lists; commonly there will be a specific topic such as usage or development for a given list. There are several technology websites with a Linux focus. Linux Weekly News is a weekly digest of Linux-related news; the Linux Journal is an online magazine of Linux articles published monthly; Slashdot is a technology-related news website with many stories on Linux and open source software; Groklaw has written in depth about Linux-related legal proceedings and there are many articles relevant to the Linux kernel and its relationship with GNU on the GNU project's website. Print magazines on Linux often include cover disks including software or even complete Linux distributions.

Although Linux is generally available free of charge, several large corporations have established business models that involve selling, supporting, and contributing to Linux and free software. These include Dell, IBM, HP, Sun Microsystems, Novell, and Red Hat. The free software licenses on which Linux is based explicitly accommodate and encourage commercialization; the relationship between Linux as a whole and individual vendors may be seen as symbiotic. One common business model of commercial suppliers is charging for support, especially for business users. A number of companies also offer a specialized business version of their distribution, which adds proprietary support packages and tools to administer higher numbers of installations or to simplify administrative tasks. Another business model is to give away the software in order to sell hardware.

Programming on Linux
Most Linux distributions support dozens of programming languages. The most common collection of utilities for building both Linux applications and operating system programs is found within the GNU toolchain, which includes the GNU Compiler Collection (GCC) and the GNU build system. Amongst others, GCC provides compilers for Ada, C, C++, Java, and Fortran. The Linux kernel itself is written to be compiled with GCC. Proprietary compilers for Linux include the Intel C++ Compiler and IBM XL C/C++ Compiler. Most distributions also include support for Perl, Ruby, Python and other dynamic languages. Examples of languages that are less common, but still well-supported, are C# via the Mono project, and Scheme. A number of Java Virtual Machines and development kits run on Linux, including the original Sun Microsystems JVM (HotSpot), and IBM's J2SE RE, as well as many open-source projects like Kaffe. The two main frameworks for developing graphical applications are those of GNOME and KDE. These projects are based on the GTK+ and Qt widget toolkits, respectively, which can also be used independently of the larger framework. Both support a wide variety of languages. There are a number of Integrated development environments available including Anjuta, Code::Blocks, Eclipse, KDevelop, Lazarus, MonoDevelop, NetBeans, and Omnis Studio while the long-established editors Vim and Emacs remain popular.

Uses
As well as those designed for general purpose use on desktops and servers, distributions may be specialized for different purposes including: computer architecture support, embedded systems, stability, security, localization to a specific region or language, targeting of specific user groups, support for real-time applications, or commitment to a given desktop environment. Furthermore, some distributions deliberately include only free software. Currently, over three hundred distributions are actively developed, with about a dozen distributions being most popular for general-purpose use. Linux is a widely ported operating system. While the Linux kernel was originally designed only for Intel 80386 microprocessors, it now runs on a more diverse range of computer architectures than any other operating system: in the hand-held ARM-based iPAQ and the mainframe IBM System z9, in devices ranging from mobile phones to supercomputers. Specialized distributions exist for less mainstream architectures. The ELKS kernel fork can run on Intel 8086 or Intel 80286 16-bit microprocessors, while the µClinux kernel fork may run on systems without a memory management unit. The kernel also runs on architectures that were only ever intended to use a manufacturer-created operating system, such as Macintosh computers, PDAs, video game consoles, portable music players, and mobile phones.

Desktop
Although there is a lack of Linux ports for some Mac OS X and Microsoft Windows programs in domains such as desktop publishing and professional audio, applications equivalent to those available for Mac and Windows are available for Linux. Most Linux distributions provide a program for browsing a list of thousands of free software applications that have already been tested and configured for a specific distribution. These free programs can be downloaded and installed with one mouse click and a digital signature guarantees that no one has added a virus or a spyware to these programs. Many free software titles that are popular on Windows, such as Pidgin, Mozilla Firefox, Openoffice.org, and GIMP, are available for Linux. A growing amount of proprietary desktop software is also supported under Linux, examples being Adobe Flash Player, Acrobat Reader, Matlab, Nero Burning ROM, Opera, Google Picasa, RealPlayer, and Skype. In the field of animation and visual effects, most high end software, such as AutoDesk Maya, Softimage XSI and Apple Shake, is available for Linux, Windows and/or Mac OS X. CrossOver is a proprietary solution based on the open source Wine project that supports running older Windows versions of Microsoft Office and Adobe Photoshop versions through CS2. Microsoft Office 2007 and Adobe Photoshop CS3 are known not to work. Besides the free Windows compatibility layer Wine, most distributions offer Dual boot and X86 virtualization for running both Linux and Windows on the same computer. Linux's open nature allows distributed teams to localize Linux distributions for use in locales where localizing proprietary systems would not be cost-effective. For example the Sinhalese language version of the Knoppix distribution was available for a long time before Microsoft Windows XP was translated to Sinhalese. In this case the Lanka Linux User Group played a major part in developing the localized system by combining the knowledge of university professors, linguists, and local developers. The performance of Linux on the desktop has been a controversial topic, with at least one key Linux kernel developer, Con Kolivas, accusing the Linux community of favouring performance on servers. He quit Linux development because he was frustrated with this lack of focus on the desktop, and then gave a 'tell all' interview on the topic.

Servers and supercomputers
Historically, Linux has mainly been used as a server operating system, and has risen to prominence in that area; Netcraft reported in February 2008 that five of the ten most reliable internet hosting companies run Linux on their web servers. This is due to its relative stability and long uptime, and the fact that desktop software with a graphical user interface for servers is often unneeded. Enterprise and non-enterprise Linux distributions may be found running on servers. Linux is the cornerstone of the LAMP server-software combination (Linux, Apache, MySQL, Perl/PHP/Python) which has achieved popularity among developers, and which is one of the more common platforms for website hosting. Linux is commonly used as an operating system for supercomputers. As of November 2007, out of the top 500 systems, 426 (85.2%) run Linux.

Embedded devices
Due to its low cost and ability to be easily modified, an embedded Linux is often used in embedded systems. Linux has become a major competitor to the proprietary Symbian OS found in the majority of smartphones — 16.7% of smartphones sold worldwide during 2006 were using Linux — and it is an alternative to the proprietary Windows CE and Palm OS operating systems on mobile devices. Cell phones or PDAs running on Linux and built on open source platform became a trend from 2007, like Nokia N810, Openmoko's Neo1973 and the on-going Google Android. The popular TiVo digital video recorder uses a customized version of Linux. Several network firewall and router standalone products, including several from Linksys, use Linux internally, using its advanced firewall and routing capabilities. The Korg OASYS and the Yamaha Motif XS music workstations also run Linux. Further more Linux is used in the leading stage lighting control system, FlyingPig/HighEnd WholeHogIII Console .

Market share and uptake
Many quantitative studies of open source software focus on topics including market share and reliability, with numerous studies specifically examining Linux. The Linux market is growing rapidly, and the revenue of servers, desktops, and packaged software running Linux is expected to exceed $35.7 billion by 2008. IDC's report for Q1 2007 says that Linux now holds 12.7% of the overall server market. This estimate was based on the number of Linux servers sold by various companies. Desktop adoption of Linux is approximately 1%. In comparison, Microsoft operating systems hold more than 90%.frictional cost of switching operating systems and lack of support for certain hardware and application programs designed for Microsoft Windows have been two factors that have inhibited adoption. Proponents and analysts attribute the relative success of Linux to its security, reliability, low cost, and freedom from vendor lock-in. Also most recently Google has begun to fund Wine, which acts as a compatibility layer, allowing users to run some Windows programs under Linux. The XO laptop project of One Laptop Per Child is creating a new and potentially much larger Linux community, planned to reach several hundred million schoolchildren and their families and communities in developing countries. Six countries have ordered a million or more units each for delivery in 2007 to distribute to schoolchildren at no charge. Google, Red Hat, and eBay are major supporters of the project.

Code size
A 2001 study of Red Hat Linux 7.1 found that this distribution contained 30 million source lines of code. Using the Constructive Cost Model, the study estimated that this distribution required about eight thousand man-years of development time. According to the study, if all this software had been developed by conventional proprietary means, it would have cost about 1.08 billion dollars (year 2000 U.S. dollars) to develop in the United States. Most of the code (71%) was written in the C programming language, but many other languages were used, including C++, assembly language, Perl, Python, Fortran, and various shell scripting languages. Slightly over half of all lines of code were licensed under the GPL. The Linux kernel itself was 2.4 million lines of code, or 8% of the total. In a later study, the same analysis was performed for Debian GNU/Linux version 4.0. This distribution contained over 283 million source lines of code, and the study estimated that it would have cost 5.4 billion Euros to develop by conventional means.

Licensing, trademark, and naming
The Linux kernel and most GNU software are licensed under the GNU General Public License (GPL). The GPL requires that anyone who distributes the Linux kernel must make the source code (and any modifications) available to the recipient under the same terms. In 1997, Linus Torvalds stated, “Making Linux GPL'd was definitely the best thing I ever did.” Other key components of a Linux system may use other licenses; many libraries use the GNU Lesser General Public License (LGPL), a more permissive variant of the GPL, and the X Window System uses the MIT License. Torvalds has publicly stated that he would not move the Linux kernel (currently licensed under GPL version 2) to version 3 of the GPL, released in mid-2007, specifically citing some provisions in the new license which prohibit the use of the software in digital rights management. In the United States, the name Linux is a trademark registered to Linus Torvalds. Initially, nobody registered it, but on August 15, 1994, William R. Della Croce, Jr. filed for the trademark Linux, and then demanded royalties from Linux distributors. In 1996, Torvalds and some affected organizations sued him to have the trademark assigned to Torvalds, and in 1997 the case was settled. The licensing of the trademark has since been handled by the Linux Mark Institute. Torvalds has stated that he only trademarked the name to prevent someone else from using it, but was bound in 2005 by United States trademark law to take active measures to enforce the trademark. As a result, the LMI sent out a number of letters to distribution vendors requesting that a fee be paid for the use of the name, and a number of companies have complied.

GNU/Linux
The Free Software Foundation views Linux distributions which use GNU software as GNU variants and they ask that such operating systems be referred to as GNU/Linux or a Linux-based GNU system. However, the media and population at large refers to this family of operating systems simply as Linux. While some distributors make a point of using the aggregate form, most notably Debian with the Debian GNU/Linux distribution, the term's use outside of the enthusiast community is limited. The distinction between the Linux kernel and distributions based on it plus the GNU system is a source of confusion to many newcomers, and the naming remains controversial.

Baca Selanjutnya - Linux

Microsoft Windows 0

Microsoft Windows is the name of several families of software operating systems by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces (GUIs). Microsoft Windows came to dominate the world's personal computer market, overtaking Mac OS, which had been introduced previously. At the 2004 IDC Directions conference, IDC Vice President Avneesh Saxena stated that Windows had approximately 90% of the client operating system market. The most recent client version of Windows is Windows Vista. The current server version of Windows is Windows Server 2008.

Versions
The term Windows collectively describes any or all of several generations of Microsoft (MS) operating system (OS) products. These products are generally categorized as follows:

16-bit operating environments
The early versions of Windows were often thought of as just graphical user interfaces, mostly because they ran on top of MS-DOS and used it for file system services. However, even the earliest 16-bit Windows versions already assumed many typical operating system functions, notably, having their own executable file format and providing their own device drivers (timer, graphics, printer, mouse, keyboard and sound) for applications. Unlike MS-DOS, Windows allowed users to execute multiple graphical applications at the same time, through cooperative multitasking. Finally, Windows implemented an elaborate, segment-based, software virtual memory scheme, which allowed it to run applications larger than available memory: code segments and resources were swapped in and thrown away when memory became scarce, and data segments moved in memory when a given application had relinquished processor control, typically waiting for user input. 16-bit Windows versions include Windows 1.0 (1985), Windows 2.0 (1987) and its close relative, Windows/286.

Hybrid 16/32-bit operating environments
Windows/386 introduced a 32-bit protected mode kernel and virtual machine monitor. For the duration of a Windows session, it created one or more virtual 8086 environments and provided device virtualization for the video card, keyboard, mouse, timer and interrupt controller inside each of them. The user-visible consequence was that it became possible to preemptively multitask multiple MS-DOS environments in separate windows, although graphical MS-DOS applications required full screen mode. Also, Windows applications were multi-tasked cooperatively inside one such virtual 8086 environment. Windows 3.0 (1990) and Windows 3.1 (1992) improved the design, mostly because of virtual memory and loadable virtual device drivers (VxDs) which allowed them to share arbitrary devices between multitasked DOS windows. Also, Windows applications could now run in protected mode (when Windows was running in Standard or 386 Enhanced Mode), which gave them access to several megabytes of memory and removed the obligation to participate in the software virtual memory scheme. They still ran inside the same address space, where the segmented memory provided a degree of protection, and multi-tasked cooperatively. For Windows 3.0, Microsoft also rewrote critical operations from C into assembly, making this release faster and less memory-hungry than its predecessors.

Hybrid 16/32-bit operating systems
With the introduction of the 32-bit Windows for Workgroups 3.11, Windows was able to stop relying on DOS for file management. Levering this, Windows 95 introduced Long File Names, reducing the 8.3 filename DOS environment to the role of a boot loader. MS-DOS was now bundled with Windows; this notably made it (partially) aware of long file names when its utilities were run from within Windows. The most important novelty was the possibility of running 32-bit multi-threaded preemptively multitasked graphical programs. However, the necessity of keeping compatibility with 16-bit programs meant the GUI components were still 16-bit only and not fully reentrant, which resulted in reduced performance and stability. There were three releases of Windows 95 (the first in 1995, then subsequent bug-fix versions in 1996 and 1997, only released to OEMs, which added extra features such as FAT32 and primitive USB support). Microsoft's next OS was Windows 98; there were two versions of this (the first in 1998 and the second, named "Windows 98 Second Edition", in 1999). In 2000, Microsoft released Windows Me (Me standing for Millennium Edition), which used the same core as Windows 98 but adopted some aspects of Windows 2000 and removed the option boot into DOS mode. It also added a new feature called System Restore, allowing the user to set the computer's settings back to an earlier date.

32-bit operating systems
The NT family of Windows systems was fashioned and marketed for higher reliability business use, and was unencumbered by any Microsoft DOS patrimony. The first release was Windows NT 3.1 (1993, numbered "3.1" to match the Windows version and to one-up OS/2 2.1, IBM's flagship OS co-developed by Microsoft and was Windows NT's main competitor at the time), which was followed by NT 3.5 (1994), NT 3.51 (1995), and NT 4.0 (1996); NT 4.0 was the first in this line to implement the "Windows 95" user interface (and the first to include Windows 95's built-in 32-bit runtimes). Microsoft then moved to combine their consumer and business operating systems. Their first attempt, Neptune was cancelled and replaced with a new project, Whistler, which later became Windows XP, coming in both home and professional versions (and later niche market versions for tablet PCs and media centers) improved stability, user experience and backwards compatibility. Then, Windows Server 2003 brought Windows Server up to date with Windows XP. Since then, a new version, Windows Vista was released and Windows Server 2008, released on February 27, 2008, brings Windows Server up to date with Windows Vista. Windows CE, Microsoft's offering in the mobile and embedded markets, is also a true 32-bit operating system that offers various services for all sub-operating workstations.

64-bit operating systems
Windows NT included support for several different platforms before the x86-based personal computer became dominant in the professional world. Versions of NT from 3.1 to 4.0 supported DEC Alpha and MIPS R4000, which were 64-bit processors, although the operating system treated them as 32-bit processors. With the introduction of the Intel Itanium architecture, which is referred to as IA-64, Microsoft released new versions of Windows 2000 to support it. Itanium versions of Windows XP and Windows Server 2003 were released at the same time as their mainstream x86 (32-bit) counterparts. On April 25, 2005, Microsoft released Windows XP Professional x64 Edition and x64 versions of Windows Server 2003 to support the AMD64/Intel64 (or x64 in Microsoft terminology) architecture. Microsoft dropped support for the Itanium version of Windows XP in 2005. Windows Vista is the first end-user version of Windows that Microsoft has released simultaneously in 32-bit and x64 editions. Windows Vista does not support the Itanium architecture. The modern 64-bit Windows family comprises AMD64/Intel64 versions of Windows Vista, and Windows Server 2003, in both Itanium and x64 editions.

History
Microsoft has taken two parallel routes in its operating systems. One route has been for the home user and the other has been for the professional IT user. The dual routes have generally led to home versions having greater multimedia support and less functionality in networking and security, and professional versions having inferior multimedia support and better networking and security. The first version of Microsoft Windows, version 1.0, released in November 1985, lacked a degree of functionality and achieved little popularity, and was to compete with Apple's own operating system. Windows 1.0 is not a complete operating system; rather, it extends MS-DOS. Microsoft Windows version 2.0 was released in November, 1987 and was slightly more popular than its predecessor. Windows 2.03 (release date January 1988) had changed the OS from tiled windows to overlapping windows. The result of this change led to Apple Computer filing a suit against Microsoft alleging infringement on Apple's copyrights. Microsoft Windows version 3.0, released in 1990, was the first Microsoft Windows version to achieve broad commercial success, selling 2 million copies in the first six months. It featured improvements to the user interface and to multitasking capabilities. It received a facelift in Windows 3.1, made generally available on March 1, 1992. Windows 3.1 support ended on December 31, 2001. In July 1993, Microsoft released Windows NT based on a new kernel. NT was considered to be the professional OS and was the first Windows version to utilize preemptive multitasking.Windows NT would later be retooled to also function as a home operating system, with Windows XP.

On August 24th 1995, Microsoft released Windows 95, a new, and major, consumer version that made further changes to the user interface, and also used preemptive multitasking. Windows 95 was designed to replace not only Windows 3.1, but also Windows for Workgroups, and MS-DOS. It was also the first Windows operating system to use Plug and Play capabilities. The changes Windows 95 brought to the desktop were revolutionary, as opposed to evolutionary, such as those in Windows 98 and Windows Me. Mainstream support for Windows 95 ended on December 31, 2000 and extended support for Windows 95 ended on December 31, 2001. The next in the consumer line was Microsoft Windows 98 released on June 25th, 1998. It was substantially criticized for its slowness and for its unreliability compared with Windows 95, but many of its basic problems were later rectified with the release of Windows 98 Second Edition in 1999. Mainstream support for Windows 98 ended on June 30, 2002 and extended support for Windows 98 ended on July 11, 2006.

As part of its "professional" line, Microsoft released Windows 2000 in February 2000. The consumer version following Windows 98 was Windows Me (Windows Millennium Edition). Released in September 2000, Windows Me attempted to implement a number of new technologies for Microsoft: most notably publicized was "Universal Plug and Play." However, the OS was heavily criticized for its lack of compatibility and stability and it was even rated by PC World as the fourth worst product of all time. In October 2001, Microsoft released Windows XP, a version built on the Windows NT kernel that also retained the consumer-oriented usability of Windows 95 and its successors. This new version was widely praised in computer magazines. It shipped in two distinct editions, "Home" and "Professional", the former lacking many of the superior security and networking features of the Professional edition. Additionally, the first "Media Center" edition was released in 2002, with an emphasis on support for DVD and TV functionality including program recording and a remote control. Mainstream support for Windows XP will continue until April 14, 2009 and extended support will continue until April 8, 2014. In April 2003, Windows Server 2003 was introduced, replacing the Windows 2000 line of server products with a number of new features and a strong focus on security; this was followed in December 2005 by Windows Server 2003 R2. On January 30, 2007 Microsoft released Windows Vista. It contains a number of new features, from a redesigned shell and user interface to significant technical changes, with a particular focus on security features. It is available in a number of different editions, and has been subject to some criticism.

Security
Security has been a hot topic with Windows for many years, and even Microsoft itself has been the victim of security breaches. Consumer versions of Windows were originally designed for ease-of-use on a single-user PC without a network connection, and did not have security features built in from the outset. Windows NT and its successors are designed for security (including on a network) and multi-user PCs, but are not designed with Internet security in mind as much since, when it was first developed in the early 1990s, Internet use was less prevalent. These design issues combined with flawed code (such as buffer overflows) and the popularity of Windows means that it is a frequent target of worm and virus writers. In June 2005, Bruce Schneier's Counterpane Internet Security reported that it had seen over 1,000 new viruses and worms in the previous six months. Microsoft releases security patches through its Windows Update service approximately once a month (usually the second Tuesday of the month), although critical updates are made available at shorter intervals when necessary. In Windows 2000 (SP3 and later), Windows XP and Windows Server 2003, updates can be automatically downloaded and installed if the user selects to do so. As a result, Service Pack 2 for Windows XP, as well as Service Pack 1 for Windows Server 2003, were installed by users more quickly than it otherwise might have been.

Windows Defender
On 6 January 2005, Microsoft released a beta version of Microsoft AntiSpyware, based upon the previously released Giant AntiSpyware. On 14 February 2006, Microsoft AntiSpyware became Windows Defender with the release of beta 2. Windows Defender is a freeware program designed to protect against spyware and other unwanted software. Windows XP and Windows Server 2003 users who have genuine copies of Microsoft Windows can freely download the program from Microsoft's web site, and Windows Defender ships as part of Windows Vista.

Third-party analysis
In an article based on a report by Symantec, internetnews.com has described Microsoft Windows as having the "fewest number of patches and the shortest average patch development time of the five operating systems it monitored in the last six months of 2006." And the number of vulnerabilities found in Windows has significantly increased— Windows: 12+, Red Hat + Fedora: 2, Apple OS X: 1, HP-UX: 2, Solaris: 1. A study conducted by Kevin Mitnick and marketing communications firm Avantgarde in 2004 found that an unprotected and unpatched Windows XP system with Service Pack 1 lasted only 4 minutes on the Internet before it was compromised, and an unprotected and also unpatched Windows Server 2003 system was compromised after being connected to the internet for 8 hours. However, it is important to note that this study does not apply to Windows XP systems running the Service Pack 2 update (released in late 2004), which vastly improved the security of Windows XP. The computer that was running Windows XP Service Pack 2 was not compromised. The AOL National Cyber Security Alliance Online Safety Study of October 2004 determined that 80% of Windows users were infected by at least one spyware/adware product. Much documentation is available describing how to increase the security of Microsoft Windows products. Typical suggestions include deploying Microsoft Windows behind a hardware or software firewall, running anti-virus and anti-spyware software, and installing patches as they become available through Windows Update.

Windows Lifecycle Policy
Microsoft has stopped releasing updates and hotfixes for many old Windows operating systems, including all versions of Windows 9x and earlier versions of Windows NT. Windows versions prior to XP are no longer supported, with the exception of Windows 2000, which is currently in the Extended Support Period, that will end on July 13, 2010. Windows XP versions prior to SP2 are no longer supported either. Also, support for Windows XP 64-bit Edition ended after the release of the more recent Windows XP Professional x64 Edition. No new updates are created for unsupported versions of Windows.

Emulation software
Emulation allows the use of some Windows applications without using Microsoft Windows. These include:
* Wine - a free and open source software implementation of the Windows API, allowing one to run many Windows applications on x86-based platforms, including Linux. Wine is technically not an emulator but a "compatibility layer"; while an emulator effectively 'pretends' to be a different CPU, Wine instead makes use of Windows-style APIs to 'simulate' the Windows environment directly.

o CrossOver - A Wine package with licensed fonts. Its developers are regular contributors to Wine, and focus on Wine running officially supported applications.

o Cedega - TransGaming Technologies' proprietary fork of Wine, designed specifically for running games written for Microsoft Windows under Linux.

o Darwine - This project intends to port and develop Wine as well as other supporting tools that will allow Darwin and Mac OS X users to run Microsoft Windows applications, and to provide Win32 API compatibility at application source code level.

* ReactOS - An open-source OS that is intended to run the same software as Windows, originally designed to imitate Windows NT 4.0, now aiming at Windows XP compatibility. It has been in the development stage since 1996.


Baca Selanjutnya - Microsoft Windows

Internet Protocol (IP) 0

The Internet Protocol (IP) is a data-oriented protocol used for communicating data across a packet-switched internetwork. IP is a network layer protocol in the Internet protocol suite and is encapsulated in a data link layer protocol (e.g., Ethernet). As a lower layer protocol, IP provides the service of communicable unique global addressing amongst computers.

Packetization
Data from an upper layer protocol is encapsulated inside one or more packets/datagrams (the terms are basically synonymous in IP). No circuit setup is needed before a host tries to send packets to a host it has previously not communicated with (this is the point of a packet-switched network), thus IP (Internet protocol) is a connectionless protocol. This is quite unlike Public Switched Telephone Networks that require the setup of a circuit before a phone call may go through (a connection-oriented protocol).

Services provided by IP
Because of the abstraction provided by encapsulation, IP can be used over a heterogeneous network (i.e., a network connecting two computers can be any mix of Ethernet, ATM, FDDI, Wi-Fi, token ring, etc.) and it makes no difference to the upper layer protocols. Each data link layer can (and does) have its own method of addressing (or possibly the complete lack of it), with a corresponding need to resolve IP addresses to data link addresses. This address resolution is handled by the Address Resolution Protocol (ARP).

Reliability
IP provides an unreliable service (i.e., best effort delivery). This means that the network makes no guarantees about the packet and none, some, or all of the following may apply:
* data corruption
* out of order delivery (packet A may be sent before packet B, but B can arrive before A)
* duplicate arrival
* lost or dropped/discarded packages
In terms of reliability the only thing IP does is ensure the IP packet's header is error-free through the use of a checksum. This has the side-effect of discarding packets with bad headers on the spot, and with no required notification to either end (though an ICMP message may be sent). To address any of these reliability issues, an upper layer protocol must handle it. For example, to ensure in-order delivery the upper layer may have to cache data until it can be passed up in order. If the upper layer protocol does not self-police its own size by first looking at the Layer 2 Maximum Transmission Unit (MTU) size, and sends the IP layer too much data, IP is forced to fragment the original datagram into smaller fragments for transmission. IP does provide re-ordering of any fragments that arrive out of order by using the fragmentation flags and offset. Transmission Control Protocol (TCP) is a good example of a protocol that will adjust its segment size to be smaller than the MTU. User Datagram Protocol (UDP) and Internet Control Message Protocol (ICMP) are examples of protocols that disregard MTU size thereby forcing IP to fragment oversized datagrams. The primary reason for the lack of reliability is to reduce the complexity of routers. While this does give routers carte blanche to do as they please with packets, anything less than best effort yields a poor experience for the end user. So, even though no guarantees are made, the better the effort made by the network, the better the experience for the user. Most protocols are built around the idea that error checking is best done at each end of the communication line, see End-to-end principle.

IP addressing and routing
Perhaps the most complex aspects of IP are IP addressing and routing. Addressing refers to how end hosts become assigned IP addresses and how subnetworks of IP host addresses are divided and grouped together. IP routing is performed by all hosts, but most importantly by internetwork routers, which typically use either interior gateway protocols (IGPs) or external gateway protocols (EGPs) to help make IP datagram forwarding decisions across IP connected networks.

Version history
In May, 1974, the Institute of Electrical and Electronic Engineers (IEEE) published a paper titled "A Protocol for Packet Network Interconnection." The paper's authors -- Vinton Cerf and Robert Kahn -- described a protocol called "TCP" that incorporated both connection-oriented and datagram services. IP is the common element found in today's public Internet. The current and most popular network layer protocol in use today is IPv4; this version of the protocol is assigned version 4. IPv4 is described in RFC-791 (1981). IPv6 is the proposed successor to IPv4 whose most prominent change is the addressing. IPv4 uses 32-bit addresses (~4 billion addresses) while IPv6 uses 128-bit addresses (~3.4×1038 addresses). Although adoption of IPv6 has been slow, as of 2008, all United States government systems must support IPv6 (if only at the backbone level). Version numbers 0 through 3 were development versions of IPv4 used between 1977 and 1979. Version number 5 was used by the Internet Stream Protocol (IST), an experimental stream protocol. Version numbers 6 through 9 were assigned to experimental protocols designed to replace IPv4: SIPP (Simple Internet Protocol Plus, known nowadays as IPv6), TP/IX (RFC 1475), PIP (RFC 1621) and TUBA (TCP and UDP with Bigger Addresses, RFC 1347). Of these, only IPv6 is still in use. In 2004, a Chinese project called IPv9 was briefly mentioned in the press as a possible competitor to IPv6. The proposal had no affiliation with or support by any international standards body, and appears to have gained no traction even within China.

Baca Selanjutnya - Internet Protocol (IP)

Hypertext Transfer Protocol (HTTP) 0

Hypertext Transfer Protocol (HTTP) is a communications protocol for the transfer of information on intranets and the World Wide Web. Its original purpose was to provide a way to publish and retrieve hypertext pages over the Internet. HTTP development was coordinated by the World Wide Web Consortium (W3C) and the Internet Engineering Task Force (IETF), culminating in the publication of a series of Request for Comments (RFCs), most notably RFC 2616 (June 1999), which defines HTTP/1.1, the version of HTTP in common use. HTTP is a request/response standard between a client and a server. A client is the end-user, the server is the web site. The client making an HTTP request - using a web browser, spider, or other end-user tool - is referred to as the user agent. The responding server - which stores or creates resources such as HTML files and images - is called the origin server. In between the user agent and origin server may be several intermediaries, such as proxies, gateways, and tunnels. HTTP is not constrained to using TCP/IP and its supporting layers, although this is its most popular application on the Internet. Indeed HTTP can be implemented on top of any other protocol on the Internet, or on other networks. HTTP only presumes a reliable transport; any protocol that provides such guarantees can be used. Typically, an HTTP client initiates a request. It establishes a Transmission Control Protocol (TCP) connection to a particular port on a host (port 80 by default; see List of TCP and UDP port numbers). An HTTP server listening on that port waits for the client to send a request message. Upon receiving the request, the server sends back a status line, such as "HTTP/1.1 200 OK", and a message of its own, the body of which is perhaps the requested file, an error message, or some other information. Resources to be accessed by HTTP are identified using Uniform Resource Identifiers (URIs) (or, more specifically, Uniform Resource Locators (URLs)) using the http: or https URI schemes.

Request Message
The request message consists of the following:
* Request line, such as GET /images/logo.gif HTTP/1.1, which requests the file logo.gif from the /images directory
* Headers, such as Accept-Language: en
* An empty line
* An optional message body
The request line and headers must all end with (that is, a carriage return followed by a line feed). The empty line must consist of only and no other whitespace. In the HTTP/1.1 protocol, all headers except Host are optional. A request line containing only the path name is accepted by servers to maintain compatibility with HTTP clients before the HTTP/1.0 specification.

Request methods
HTTP defines eight methods (sometimes referred to as "verbs") indicating the desired action to be performed on the identified resource.
HEAD
Asks for the response identical to the one that would correspond to a GET request, but without the response body. This is useful for retrieving meta-information written in response headers, without having to transport the entire content.
GET
Requests a representation of the specified resource. By far the most common method used on the Web today. Should not be used for operations that cause side-effects (using it for actions in web applications is a common misuse). See 'safe methods' below.
POST
Submits data to be processed (e.g. from an HTML form) to the identified resource. The data is included in the body of the request. This may result in the creation of a new resource or the updates of existing resources or both.
PUT
Uploads a representation of the specified resource.
DELETE
Deletes the specified resource.
TRACE
Echoes back the received request, so that a client can see what intermediate servers are adding or changing in the request.
OPTIONS
Returns the HTTP methods that the server supports for specified URI. This can be used to check the functionality of a web server by requesting '*' instead of a specific resource.
CONNECT
Converts the request connection to a transparent TCP/IP tunnel, usually to facilitate SSL-encrypted communication (HTTPS) through an unencrypted HTTP proxy.
HTTP servers are supposed to implement at least the GET and HEAD methods and, whenever possible, also the OPTIONS method.

Safe methods
Some methods (e.g. HEAD, GET, OPTIONS, and TRACE) are defined as safe, which means they are intended only for information retrieval and should not change the state of the server (in other words, they should not have side effects). Unsafe methods (such as POST, PUT and DELETE) should be displayed to the user in a special way, typically as buttons rather than links, thus making the user aware of possible obligations (such as a button that causes a financial transaction). Despite the required safety of GET requests, in practice they can cause changes on the server. For example, a Web server may use the retrieval through a simple hyperlink to trigger the deletion, addition, or modification of a record. This is discouraged, because it can cause problems for Web caching, search engines and other automated agents, which can make unintended changes on the server. Another case is that a GET request may cause the server to create a cache space.

Idempotent Methods and Web Applications
Methods PUT and DELETE are defined to be idempotent, meaning that multiple identical requests should have the same effect as a single request. Methods GET, HEAD, OPTIONS and TRACE, being safe, are inherently idempotent. The RFC allows a user-agent, such as a browser to assume that any idempotent request can be retried without informing the user. This is done to improve the user experience when connecting to unresponsive or heavily-loaded web servers. However, note that the idempotence is not assured by the protocol or web server. It is perfectly possible to write a web application in which (e.g.) a database insert or update is triggered by a GET request - this would be a very normal example of what the spec refers to as "a change in server state." This misuse of GET can combine with the retry behavior above to produce erroneous transactions - and for this reason GET should be avoided for anything transactional - and used, as intended, for document retrieval only.

HTTP Versions
HTTP has evolved into multiple, mostly backwards-compatible protocol versions. RFC 2145 describes the use of HTTP version numbers. The client tells in the beginning of the request the version it uses, and the server uses the same or earlier version in the response.
0.9
Deprecated. Supports only one command, GET, which does not specify the HTTP version. Does not support headers. Since this version does not support POST, the client cannot pass much information to the server.
HTTP/1.0 (May 1996)
This is the first protocol revision to specify its version in communications and is still in wide use, especially by proxy servers.
HTTP/1.1 (June 1999)
Current version; persistent connections enabled by default and works well with proxies. Also supports request pipelining, allowing multiple requests to be sent at the same time, allowing the server to prepare for the workload and potentially transfer the requested resources more quickly to the client.
HTTP/1.2
The initial 1995 working drafts of the document PEP — an Extension Mechanism for HTTP (which proposed the Protocol Extension Protocol, abbreviated PEP) were prepared by the World Wide Web Consortium and submitted to the Internet Engineering Task Force. PEP was originally intended to become a distinguishing feature of HTTP/1.2. In later PEP working drafts, however, the reference to HTTP/1.2 was removed. The experimental RFC 2774, HTTP Extension Framework, largely subsumed PEP. It was published in February 2000. The major changes between HTTP/1.0 and HTTP/1.1 include the way HTTP handles caching; how it manages bandwidth, network connections, and error notifications; how it transmits messages over the network; how internet addresses are conserved; and how it maintains security and integrity.

Status Codes
In HTTP/1.0 and since, the first line of the HTTP response is called the status line and includes a numeric status code (such as "404") and a textual reason phrase (such as "Not Found"). The way the user agent handles the response primarily depends on the code and secondarily on the response headers. Custom status codes can be used since, if the user agent encounters a code it does not recognize, it can use the first digit of the code to determine the general class of the response. Also, the standard reason phrases are only recommendations and can be replaced with "local equivalents" at the web developer's discretion. If the status code indicated a problem, the user agent might display the reason phrase to the user to provide further information about the nature of the problem. The standard also allows the user agent to attempt to interpret the reason phrase, though this might be unwise since the standard explicitly specifies that status codes are machine-readable and reason phrases are human-readable

Persistent Connections
In HTTP/0.9 and 1.0, the connection is closed after a single request/response pair. In HTTP/1.1 a keep-alive-mechanism was introduced, where a connection could be reused for more than one request. Such persistent connections reduce lag perceptibly, because the client does not need to re-negotiate the TCP connection after the first request has been sent. Version 1.1 of the protocol made bandwidth optimization improvements to HTTP/1.0. For example, HTTP/1.1 introduced chunked transfer encoding to allow content on persistent connections to be streamed, rather than buffered. HTTP pipelining further reduces lag time, allowing clients to send multiple requests before a previous response has been received to the first one. Another improvement to the protocol was byte serving, which is when a server transmits just the portion of a resource explicitly requested by a client.

HTTP session state
HTTP is a stateless protocol. The advantage of a stateless protocol is that hosts do not need to retain information about users between requests, but this forces web developers to use alternative methods for maintaining users' states. For example, when a host would like to customize content for a user while visiting a website, the web application must be written to track the user's progress from page to page. A common method for solving this problem involves sending and requesting cookies. Other methods include server side sessions, hidden variables (when current page is a form), and URL encoded parameters (such as /index.php?userid=3).

Secure HTTP
There are currently two methods of establishing a secure HTTP connection: the https URI scheme and the HTTP 1.1 Upgrade header, introduced by RFC 2817. Browser support for the Upgrade header is, however, nearly non-existent, hence the https URI scheme is still the dominant method of establishing a secure HTTP connection.

HTTPS URI Scheme
HTTPS: is a URI scheme syntactically identical to the http: scheme used for normal HTTP connections, but which signals the browser to use an added encryption layer of SSL/TLS to protect the traffic. SSL is especially suited for HTTP since it can provide some protection even if only one side of the communication is authenticated. This is the case with HTTP transactions over the Internet, where typically only the server is authenticated (by the client examining the server's certificate).

HTTP 1.1 Upgrade header
HTTP 1.1 introduced support for the Upgrade header. In the exchange, the client begins by making a clear-text request, which is later upgraded to TLS. Either the client or the server may request (or demand) that the connection be upgraded. The most common usage is a clear-text request by the client followed by a server demand to upgrade the connection, which looks like this:

Client:
GET /encrypted-area HTTP/1.1
Host: www.example.com

Server:
HTTP/1.1 426 Upgrade Required
Upgrade: TLS/1.0, HTTP/1.1
Connection: Upgrade
The server returns a 426 status-code because 400 level codes indicate a client failure (see List of HTTP status codes), which correctly alerts legacy clients that the failure was client-related. The benefits of using this method for establishing a secure connection are:
* that it removes messy and problematic redirection and URL rewriting on the server side,
* it allows virtual hosting (single IP, multiple domain-names) of secured websites, and
* it reduces user confusion by providing a single way to access a particular resource.
A weakness with this method is that the requirement for secure HTTP cannot be specified in the URI. In practice, the (untrusted) server will thus be responsible for enabling secure HTTP, not the (trusted) client.

Sample
Below is a sample conversation between an HTTP client and an HTTP server running on www.example.com, port 80. Client request (followed by a blank line, so that request ends with a double newline, each in the form of a carriage return followed by a line feed):
GET /index.html HTTP/1.1
Host: www.example.com
The "Host" header distinguishes between various DNS names sharing a single IP address, allowing name-based virtual hosting. While optional in HTTP/1.0, it is mandatory in HTTP/1.1.
Server response (followed by a blank line and text of the requested page):
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Etag: "3f80f-1b6-3e1cb03b"
Accept-Ranges: bytes
Content-Length: 438
Connection: close
Content-Type: text/html; charset=UTF-8

The ETag (entity tag) header is used to determine if the URI cached is identical to the requested URI on the server. Content-Type specifies the Internet media type of the data conveyed by the http message, while Content-Length indicates its length in bytes. The HTTP/1.1 webserver publishes its ability to respond to requests for certain byte ranges of the document by setting the header Accept-Ranges: bytes. This is useful if the client needs to have only certain portions of a file sent by the server, which is called byte serving. When Connection: close is sent in a header, it means that the web server will close the TCP connection immediately after the transfer of this package.

Baca Selanjutnya - Hypertext Transfer Protocol (HTTP)

Firewall 0

A firewall is a device or set of devices configured to permit, deny, encrypt, or proxy all computer traffic between different security domains based upon a set of rules or other criteria.

Function
A firewall is a dedicated appliance, or software running on another computer, which inspects network traffic passing through it, and denies or permits passage based on a set of rules. A firewall's basic task is to regulate some of the flow of traffic between computer networks of different trust levels. Typical examples are the Internet which is a zone with no trust and an internal network which is a zone of higher trust. A zone with an intermediate trust level, situated between the Internet and a trusted internal network, is often referred to as a "perimeter network" or Demilitarized zone (DMZ). A firewall's function within a network is similar to firewalls with fire doors in building construction. In the former case, it is used to prevent network intrusion to the private network. In the latter case, it is intended to contain and delay structural fire from spreading to adjacent structures. Without proper configuration, a firewall can often become worthless. Standard security practices dictate a "default-deny" firewall ruleset, in which the only network connections which are allowed are the ones that have been explicitly allowed. Unfortunately, such a configuration requires detailed understanding of the network applications and endpoints required for the organization's day-to-day operation. Many businesses lack such understanding, and therefore implement a "default-allow" ruleset, in which all traffic is allowed unless it has been specifically blocked. This configuration makes inadvertent network connections and system compromise much more likely.

History
The term "firewall" originally meant a wall to confine a fire or potential fire within a building, c.f. firewall (construction). Later uses refer to similar structures, such as the metal sheet separating the engine compartment of a vehicle or aircraft from the passenger compartment. Firewall technology emerged in the late 1980s when the Internet was a fairly new technology in terms of its global use and connectivity. The predecessors to firewalls for network security were the routers used in the late 1980s to separate networks from one another . The view of the Internet as a relatively small community of compatible users who valued openness for sharing and collaboration was ended by a number of major internet security breaches, which occurred in the late 1980s:
* Clifford Stoll's discovery of German spies tampering with his system
* Bill Cheswick's Evening with Berferd" 1992 in which he set up a simple electronic jail to observe an attacker
* In 1988 an employee at the NASA Ames Research Center in California sent a memo by email to his colleagues that read, We are currently under attack from an Internet VIRUS! It has hit Berkeley, UC San Diego, Lawrence Livermore, Stanford, and NASA Ames.
* The Morris Worm spread itself through multiple vulnerabilities in the machines of the time. Although it was not malicious in intent, the Morris Worm was the first large scale attack on Internet security; the online community was neither expecting an attack nor prepared to deal with one.

First generation - packet filters
The first paper published on firewall technology was in 1988, when engineers from Digital Equipment Corporation (DEC) developed filter systems known as packet filter firewalls. This fairly basic system was the first generation of what would become a highly evolved and technical internet security feature. At AT&T Bell Labs, Bill Cheswick and Steve Bellovin were continuing their research in packet filtering and developed a working model for their own company based upon their original first generation architecture. Packet filters act by inspecting the "packets" which represent the basic unit of data transfer between computers on the Internet. If a packet matches the packet filter's set of rules, the packet filter will drop (silently discard) the packet, or reject it (discard it, and send "error responses" to the source). This type of packet filtering pays no attention to whether a packet is part of an existing stream of traffic (it stores no information on connection "state"). Instead, it filters each packet based only on information contained in the packet itself (most commonly using a combination of the packet's source and destination address, its protocol, and, for TCP and UDP traffic, which comprises most internet communication, the port number). Because TCP and UDP traffic by convention uses well known ports for particular types of traffic, a "stateless" packet filter can distinguish between, and thus control, those types of traffic (such as web browsing, remote printing, email transmission, file transfer), unless the machines on each side of the packet filter are both using the same non-standard ports.

Second generation - "stateful" filters
From 1980-1990 three colleagues from AT&T Bell Laboratories, Dave Presetto, Janardan Sharma, and Kshitij Nigam developed the second generation of firewalls, calling them circuit level firewalls. Second Generation firewalls in addition regard placement of each individual packet within the packet series. This technology is generally referred to as a stateful firewall as it maintains records of all connections passing through the firewall and is able to determine whether a packet is either the start of a new connection, a part of an existing connection, or is an invalid packet. Though there is still a set of static rules in such a firewall, the state of a connection can in itself be one of the criteria which trigger specific rules. This type of firewall can help prevent attacks which exploit existing connections, or certain Denial-of-service attacks.

Third generation - application layer
Publications by Gene Spafford of Purdue University, Bill Cheswick at AT&T Laboratories, and Marcus Ranum described a third generation firewall known as an application layer firewall, also known as a proxy-based firewall. Marcus Ranum's work on the technology spearheaded the creation of the first commercial product. The product was released by DEC who named it the DEC SEAL product. DEC’s first major sale was on June 13, 1991 to a chemical company based on the East Coast of the USA. The key benefit of application layer filtering is that it can "understand" certain applications and protocols (such as File Transfer Protocol, DNS, or web browsing), and it can detect whether an unwanted protocol is being sneaked through on a non-standard port or whether a protocol is being abused in a known harmful way.

Subsequent developments
In 1992, Bob Braden and Annette DeSchon at the University of Southern California (USC) were refining the concept of a firewall. The product known as "Visas" was the first system to have a visual integration interface with colours and icons, which could be easily implemented to and accessed on a computer operating system such as Microsoft's Windows or Apple's MacOS. In 1994 an Israeli company called Check Point Software Technologies built this into readily available software known as FireWall-1. The existing deep packet inspection functionality of modern firewalls can be shared by Intrusion-prevention systems (IPS). Currently, the Middlebox Communication Working Group of the Internet Engineering Task Force (IETF) is working on standardizing protocols for managing firewalls and other middleboxes.

In popular culture
Use of the term "firewall" in relation to computer or network security may have been popularized by its use in the 1983 film WarGames. In the movie, at approximately time signature 01:42:00, while attempting to gain access to the WOPR computer as it sought the code required to launch the United States' nuclear arsenal against the Soviet Union, NORAD personnel engaged in the following dialogue:
--John, lets feed it a tapeworm.
--Nah, it’s too risky. It might smash the system.
--How’d the kid get in—through the back door?
--We took it out.
--Can we invade the deep logic?
--We keep hitting a damn firewall.

Types
There are several classifications of firewalls depending on where the communication is taking place, where the communication is intercepted and the state that is being traced.

Network layer and packet filters
Network layer firewalls, also called packet filters, operate at a relatively low level of the TCP/IP protocol stack, not allowing packets to pass through the firewall unless they match the established rule set. The firewall administrator may define the rules; or default rules may apply. The term packet filter originated in the context of BSD operating systems. Network layer firewalls generally fall into two sub-categories, stateful and stateless. Stateful firewalls maintain context about active sessions, and use that "state information" to speed up packet processing. Any existing network connection can be described by several properties, including source and destination IP address, UDP or TCP ports, and the current stage of the connection's lifetime (including session initiation, handshaking, data transfer, or completion connection). If a packet does not match an existing connection, it will be evaluated according to the ruleset for new connections. If a packet matches an existing connection based on comparison with the firewall's state table, it will be allowed to pass without further processing.

Stateless firewalls have packet-filtering capabilities, but cannot make more complex decisions on what stage communications between hosts have reached. Modern firewalls can filter traffic based on many packet attributes like source IP address, source port, destination IP address or port, destination service like WWW or FTP. They can filter based on protocols, TTL values, netblock of originator, domain name of the source, and many other attributes. Commonly used packet filters on various versions of Unix are ipf (various), ipfw (FreeBSD/Mac OS X), pf (OpenBSD, and all other BSDs), iptables/ipchains (Linux).

Application-layer
Application-layer firewalls work on the application level of the TCP/IP stack (i.e., all browser traffic, or all telnet or ftp traffic), and may intercept all packets traveling to or from an application. They block other packets (usually dropping them without acknowledgement to the sender). In principle, application firewalls can prevent all unwanted outside traffic from reaching protected machines. On inspecting all packets for improper content, firewalls can restrict or prevent outright the spread of networked computer worms and trojans. In practice, however, this becomes so complex and so difficult to attempt (given the variety of applications and the diversity of content each may allow in its packet traffic) that comprehensive firewall design does not generally attempt this approach. The XML firewall exemplifies a more recent kind of application-layer firewall. Companies like SecureComputing (www.securecomputing.com) are a major manufacturer of Application Layer Firewalls.

Proxies
A proxy device (running either on dedicated hardware or as software on a general-purpose machine) may act as a firewall by responding to input packets (connection requests, for example) in the manner of an application, whilst blocking other packets. Proxies make tampering with an internal system from the external network more difficult and misuse of one internal system would not necessarily cause a security breach exploitable from outside the firewall (as long as the application proxy remains intact and properly configured). Conversely, intruders may hijack a publicly-reachable system and use it as a proxy for their own purposes; the proxy then masquerades as that system to other internal machines. While use of internal address spaces enhances security, crackers may still employ methods such as IP spoofing to attempt to pass packets to a target network.

Network address translation
Firewalls often have network address translation (NAT) functionality, and the hosts protected behind a firewall commonly have addresses in the "private address range", as defined in RFC 1918. Firewalls often have such functionality to hide the true address of protected hosts. Originally, the NAT function was developed to address the limited number of IPv4 routable addresses that could be used or assigned to companies or individuals as well as reduce both the amount and therefore cost of obtaining enough public addresses for every computer in an organization. Hiding the addresses of protected devices has become an increasingly important defense against network reconnaissance.
Baca Selanjutnya - Firewall

Computer 0

A computer is a machine that manipulates data according to a list of instructions. The first devices that resemble modern computers date to the mid-20th century (around 1940 - 1945), although the computer concept and various machines similar to computers existed earlier. Early electronic computers were the size of a large room, consuming as much power as several hundred modern personal computers.Modern computers are based on tiny integrated circuits and are millions to billions of times more capable while occupying a fraction of the space.Today, simple computers may be made small enough to fit into a wristwatch and be powered from a watch battery. Personal computers in various forms are icons of the Information Age and are what most people think of as "a computer"; however, the most common form of computer in use today is the embedded computer. Embedded computers are small, simple devices that are used to control other devices — for example, they may be found in machines ranging from fighter aircraft to industrial robots, digital cameras, and children's toys. The ability to store and execute lists of instructions called programs makes computers extremely versatile and distinguishes them from calculators. The Church–Turing thesis is a mathematical statement of this versatility: any computer with a certain minimum capability is, in principle, capable of performing the same tasks that any other computer can perform. Therefore, computers with capability and complexity ranging from that of a personal digital assistant to a supercomputer are all able to perform the same computational tasks given enough time and storage capacity.

History of computing
It is difficult to identify any one device as the earliest computer, partly because the term "computer" has been subject to varying interpretations over time. Originally, the term "computer" referred to a person who performed numerical calculations (a human computer), often with the aid of a mechanical calculating device. The history of the modern computer begins with two separate technologies - that of automated calculation and that of programmability. Examples of early mechanical calculating devices included the abacus, the slide rule and arguably the astrolabe and the Antikythera mechanism (which dates from about 150-100 BC). The end of the Middle Ages saw a re-invigoration of European mathematics and engineering, and Wilhelm Schickard's 1623 device was the first of a number of mechanical calculators constructed by European engineers. However, none of those devices fit the modern definition of a computer because they could not be programmed.

Hero of Alexandria (c. 10 – 70 AD) built a mechanical theater which performed a play lasting 10 minutes and was operated by a complex system of ropes and drums that might be considered to be a means of deciding which parts of the mechanism performed which actions - and when. This is the essence of programmability. In 1801, Joseph Marie Jacquard made an improvement to the textile loom that used a series of punched paper cards as a template to allow his loom to weave intricate patterns automatically. The resulting Jacquard loom was an important step in the development of computers because the use of punched cards to define woven patterns can be viewed as an early, albeit limited, form of programmability. It was the fusion of automatic calculation with programmability that produced the first recognisable computers. In 1837, Charles Babbage was the first to conceptualize and design a fully programmable mechanical computer that he called "The Analytical Engine". Due to limited finances, and an inability to resist tinkering with the design, Babbage never actually built his Analytical Engine.

Large-scale automated data processing of punched cards was performed for the U.S. Census in 1890 by tabulating machines designed by Herman Hollerith and manufactured by the Computing Tabulating Recording Corporation, which later became IBM. By the end of the 19th century a number of technologies that would later prove useful in the realization of practical computers had begun to appear: the punched card, Boolean algebra, the vacuum tube (thermionic valve) and the teleprinter. During the first half of the 20th century, many scientific computing needs were met by increasingly sophisticated analog computers, which used a direct mechanical or electrical model of the problem as a basis for computation. However, these were not programmable and generally lacked the versatility and accuracy of modern digital computers. A succession of steadily more powerful and flexible computing devices were constructed in the 1930s and 1940s, gradually adding the key features that are seen in modern computers. The use of digital electronics (largely invented by Claude Shannon in 1937) and more flexible programmability were vitally important steps, but defining one point along this road as "the first digital electronic computer" is difficult (Shannon 1940). Notable achievements include:
* Konrad Zuse's electromechanical "Z machines". The Z3 (1941) was the first working machine featuring binary arithmetic, including floating point arithmetic and a measure of programmability. In 1998 the Z3 was proved to be Turing complete, therefore being the world's first operational computer.
* The non-programmable Atanasoff–Berry Computer (1941) which used vacuum tube based computation, binary numbers, and regenerative capacitor memory.
* The secret British Colossus computer (1944), which had limited programmability but demonstrated that a device using thousands of tubes could be reasonably reliable and electronically reprogrammable. It was used for breaking German wartime codes.
* The Harvard Mark I (1944), a large-scale electromechanical computer with limited programmability.
* The U.S. Army's Ballistics Research Laboratory ENIAC (1946), which used decimal arithmetic and is sometimes called the first general purpose electronic computer (since Konrad Zuse's Z3 of 1941 used electromagnets instead of electronics). Initially, however, ENIAC had an inflexible architecture which essentially required rewiring to change its programming.

Several developers of ENIAC, recognizing its flaws, came up with a far more flexible and elegant design, which came to be known as the stored program architecture or von Neumann architecture. This design was first formally described by John von Neumann in the paper "First Draft of a Report on the EDVAC", published in 1945. A number of projects to develop computers based on the stored program architecture commenced around this time, the first of these being completed in Great Britain. The first to be demonstrated working was the Manchester Small-Scale Experimental Machine (SSEM) or "Baby". However, the EDSAC, completed a year after SSEM, was perhaps the first practical implementation of the stored program design. Shortly thereafter, the machine originally described by von Neumann's paper—EDVAC—was completed but did not see full-time use for an additional two years. Nearly all modern computers implement some form of the stored program architecture, making it the single trait by which the word "computer" is now defined. By this standard, many earlier devices would no longer be called computers by today's definition, but are usually referred to as such in their historical context. While the technologies used in computers have changed dramatically since the first electronic, general-purpose computers of the 1940s, most still use the von Neumann architecture. The design made the universal computer a practical reality. Vacuum tube-based computers were in use throughout the 1950s. Vacuum tubes were largely replaced in the 1960s by transistor-based computers. When compared with tubes, transistors are smaller, faster, cheaper, use less power, and are more reliable. In the 1970s, integrated circuit technology and the subsequent creation of microprocessors, such as the Intel 4004, caused another generation of decreased size and cost, and another generation of increased speed and reliability. By the 1980s, computers became sufficiently small and cheap to replace simple mechanical controls in domestic appliances such as washing machines. The 1980s also witnessed home computers and the now ubiquitous personal computer. With the evolution of the Internet, personal computers are becoming as common as the television and the telephone in the household.

Stored program architecture
The defining feature of modern computers which distinguishes them from all other machines is that they can be programmed. That is to say that a list of instructions (the program) can be given to the computer and it will store them and carry them out at some time in the future. In most cases, computer instructions are simple: add one number to another, move some data from one location to another, send a message to some external device, etc. These instructions are read from the computer's memory and are generally carried out (executed) in the order they were given. However, there are usually specialized instructions to tell the computer to jump ahead or backwards to some other place in the program and to carry on executing from there. These are called "jump" instructions (or branches). Furthermore, jump instructions may be made to happen conditionally so that different sequences of instructions may be used depending on the result of some previous calculation or some external event. Many computers directly support subroutines by providing a type of jump that "remembers" the location it jumped from and another instruction to return to the instruction following that jump instruction.

Program execution might be likened to reading a book. While a person will normally read each word and line in sequence, they may at times jump back to an earlier place in the text or skip sections that are not of interest. Similarly, a computer may sometimes go back and repeat the instructions in some section of the program over and over again until some internal condition is met. This is called the flow of control within the program and it is what allows the computer to perform tasks repeatedly without human intervention. Comparatively, a person using a pocket calculator can perform a basic arithmetic operation such as adding two numbers with just a few button presses. But to add together all of the numbers from 1 to 1,000 would take thousands of button presses and a lot of time—with a near certainty of making a mistake. On the other hand, a computer may be programmed to do this with just a few simple instructions. For example:
mov #0,sum ; set sum to 0
mov #1,num ; set num to 1
loop: add num,sum ; add num to sum
add #1,num ; add 1 to num
cmp num,#1000 ; compare num to 1000
ble loop ; if num <= 1000, go back to 'loop'
halt ; end of program. stop running

Once told to run this program, the computer will perform the repetitive addition task without further human intervention. It will almost never make a mistake and a modern PC can complete the task in about a millionth of a second. However, computers cannot "think" for themselves in the sense that they only solve problems in exactly the way they are programmed to. An intelligent human faced with the above addition task might soon realize that instead of actually adding up all the numbers one can simply use the equation
1+2+3+...+n = {{n(n+1)} \over 2}
and arrive at the correct answer (500,500) with little work. In other words, a computer programmed to add up the numbers one by one as in the example above would do exactly that without regard to efficiency or alternative solutions.

Programs
In practical terms, a computer program might include anywhere from a dozen instructions to many millions of instructions for something like a word processor or a web browser. A typical modern computer can execute billions of instructions every second and nearly never make a mistake over years of operation. Large computer programs may take teams of computer programmers years to write and the probability of the entire program having been written completely in the manner intended is unlikely. Errors in computer programs are called bugs. Sometimes bugs are benign and do not affect the usefulness of the program, in other cases they might cause the program to completely fail (crash), in yet other cases there may be subtle problems. Sometimes otherwise benign bugs may be used for malicious intent, creating a security exploit. Bugs are usually not the fault of the computer. Since computers merely execute the instructions they are given, bugs are nearly always the result of programmer error or an oversight made in the program's design.

In most computers, individual instructions are stored as machine code with each instruction being given a unique number (its operation code or opcode for short). The command to add two numbers together would have one opcode, the command to multiply them would have a different opcode and so on. The simplest computers are able to perform any of a handful of different instructions; the more complex computers have several hundred to choose from—each with a unique numerical code. Since the computer's memory is able to store numbers, it can also store the instruction codes. This leads to the important fact that entire programs (which are just lists of instructions) can be represented as lists of numbers and can themselves be manipulated inside the computer just as if they were numeric data. The fundamental concept of storing programs in the computer's memory alongside the data they operate on is the crux of the von Neumann, or stored program, architecture. In some cases, a computer might store some or all of its program in memory that is kept separate from the data it operates on. This is called the Harvard architecture after the Harvard Mark I computer. Modern von Neumann computers display some traits of the Harvard architecture in their designs, such as in CPU caches. While it is possible to write computer programs as long lists of numbers (machine language) and this technique was used with many early computers, it is extremely tedious to do so in practice, especially for complicated programs. Instead, each basic instruction can be given a short name that is indicative of its function and easy to remember—a mnemonic such as ADD, SUB, MULT or JUMP. These mnemonics are collectively known as a computer's assembly language. Converting programs written in assembly language into something the computer can actually understand (machine language) is usually done by a computer program called an assembler. Machine languages and the assembly languages that represent them (collectively termed low-level programming languages) tend to be unique to a particular type of computer. For instance, an ARM architecture computer (such as may be found in a PDA or a hand-held videogame) cannot understand the machine language of an Intel Pentium or the AMD Athlon 64 computer that might be in a PC.

Though considerably easier than in machine language, writing long programs in assembly language is often difficult and error prone. Therefore, most complicated programs are written in more abstract high-level programming languages that are able to express the needs of the computer programmer more conveniently (and thereby help reduce programmer error). High level languages are usually "compiled" into machine language (or sometimes into assembly language and then into machine language) using another computer program called a compiler. Since high level languages are more abstract than assembly language, it is possible to use different compilers to translate the same high level language program into the machine language of many different types of computer. This is part of the means by which software like video games may be made available for different computer architectures such as personal computers and various video game consoles. The task of developing large software systems is an immense intellectual effort. Producing software with an acceptably high reliability on a predictable schedule and budget has proved historically to be a great challenge; the academic and professional discipline of software engineering concentrates specifically on this problem.

How computers work
A general purpose computer has four main sections: the arithmetic and logic unit (ALU), the control unit, the memory, and the input and output devices (collectively termed I/O). These parts are interconnected by busses, often made of groups of wires. The control unit, ALU, registers, and basic I/O (and often other hardware closely linked with these) are collectively known as a central processing unit (CPU). Early CPUs were composed of many separate components but since the mid-1970s CPUs have typically been constructed on a single integrated circuit called a microprocessor.

Control unit
The control unit (often called a control system or central controller) directs the various components of a computer. It reads and interprets (decodes) instructions in the program one by one. The control system decodes each instruction and turns it into a series of control signals that operate the other parts of the computer.Control systems in advanced computers may change the order of some instructions so as to improve performance. A key component common to all CPUs is the program counter, a special memory cell (a register) that keeps track of which location in memory the next instruction is to be read from.

The control system's function is as follows—note that this is a simplified description, and some of these steps may be performed concurrently or in a different order depending on the type of CPU:
1. Read the code for the next instruction from the cell indicated by the program counter.
2. Decode the numerical code for the instruction into a set of commands or signals for each of the other systems.
3. Increment the program counter so it points to the next instruction.
4. Read whatever data the instruction requires from cells in memory (or perhaps from an input device). The location of this required data is typically stored within the instruction code.
5. Provide the necessary data to an ALU or register.
6. If the instruction requires an ALU or specialized hardware to complete, instruct the hardware to perform the requested operation.
7. Write the result from the ALU back to a memory location or to a register or perhaps an output device.
8. Jump back to step (1).

Since the program counter is (conceptually) just another set of memory cells, it can be changed by calculations done in the ALU. Adding 100 to the program counter would cause the next instruction to be read from a place 100 locations further down the program. Instructions that modify the program counter are often known as "jumps" and allow for loops (instructions that are repeated by the computer) and often conditional instruction execution (both examples of control flow). It is noticeable that the sequence of operations that the control unit goes through to process an instruction is in itself like a short computer program - and indeed, in some more complex CPU designs, there is another yet smaller computer called a microsequencer that runs a microcode program that causes all of these events to happen.

Arithmetic/logic unit (ALU)
The ALU is capable of performing two classes of operations: arithmetic and logic. The set of arithmetic operations that a particular ALU supports may be limited to adding and subtracting or might include multiplying or dividing, trigonometry functions (sine, cosine, etc) and square roots. Some can only operate on whole numbers (integers) whilst others use floating point to represent real numbers—albeit with limited precision. However, any computer that is capable of performing just the simplest operations can be programmed to break down the more complex operations into simple steps that it can perform. Therefore, any computer can be programmed to perform any arithmetic operation—although it will take more time to do so if its ALU does not directly support the operation. An ALU may also compare numbers and return boolean truth values (true or false) depending on whether one is equal to, greater than or less than the other ("is 64 greater than 65?"). Logic operations involve Boolean logic: AND, OR, XOR and NOT. These can be useful both for creating complicated conditional statements and processing boolean logic. Superscalar computers contain multiple ALUs so that they can process several instructions at the same time. Graphics processors and computers with SIMD and MIMD features often provide ALUs that can perform arithmetic on vectors and matrices.

Memory
A computer's memory can be viewed as a list of cells into which numbers can be placed or read. Each cell has a numbered "address" and can store a single number. The computer can be instructed to "put the number 123 into the cell numbered 1357" or to "add the number that is in cell 1357 to the number that is in cell 2468 and put the answer into cell 1595". The information stored in memory may represent practically anything. Letters, numbers, even computer instructions can be placed into memory with equal ease. Since the CPU does not differentiate between different types of information, it is up to the software to give significance to what the memory sees as nothing but a series of numbers. In almost all modern computers, each memory cell is set up to store binary numbers in groups of eight bits (called a byte). Each byte is able to represent 256 different numbers; either from 0 to 255 or -128 to +127. To store larger numbers, several consecutive bytes may be used (typically, two, four or eight). When negative numbers are required, they are usually stored in two's complement notation. Other arrangements are possible, but are usually not seen outside of specialized applications or historical contexts. A computer can store any kind of information in memory as long as it can be somehow represented in numerical form. Modern computers have billions or even trillions of bytes of memory.

The CPU contains a special set of memory cells called registers that can be read and written to much more rapidly than the main memory area. There are typically between two and one hundred registers depending on the type of CPU. Registers are used for the most frequently needed data items to avoid having to access main memory every time data is needed. Since data is constantly being worked on, reducing the need to access main memory (which is often slow compared to the ALU and control units) greatly increases the computer's speed. Computer main memory comes in two principal varieties: random access memory or RAM and read-only memory or ROM. RAM can be read and written to anytime the CPU commands it, but ROM is pre-loaded with data and software that never changes, so the CPU can only read from it. ROM is typically used to store the computer's initial start-up instructions. In general, the contents of RAM is erased when the power to the computer is turned off while ROM retains its data indefinitely. In a PC, the ROM contains a specialized program called the BIOS that orchestrates loading the computer's operating system from the hard disk drive into RAM whenever the computer is turned on or reset. In embedded computers, which frequently do not have disk drives, all of the software required to perform the task may be stored in ROM. Software that is stored in ROM is often called firmware because it is notionally more like hardware than software. Flash memory blurs the distinction between ROM and RAM by retaining data when turned off but being rewritable like RAM. However, flash memory is typically much slower than conventional ROM and RAM so its use is restricted to applications where high speeds are not required.In more sophisticated computers there may be one or more RAM cache memories which are slower than registers but faster than main memory. Generally computers with this sort of cache are designed to move frequently needed data into the cache automatically, often without the need for any intervention on the programmer's part.

Input/output (I/O)
I/O is the means by which a computer receives information from the outside world and sends results back. Devices that provide input or output to the computer are called peripherals. On a typical personal computer, peripherals include input devices like the keyboard and mouse, and output devices such as the display and printer. Hard disk drives, floppy disk drives and optical disc drives serve as both input and output devices. Computer networking is another form of I/O. Often, I/O devices are complex computers in their own right with their own CPU and memory. A graphics processing unit might contain fifty or more tiny computers that perform the calculations necessary to display 3D graphics. Modern desktop computers contain many smaller computers that assist the main CPU in performing I/O.

Multitasking
While a computer may be viewed as running one gigantic program stored in its main memory, in some systems it is necessary to give the appearance of running several programs simultaneously. This is achieved by having the computer switch rapidly between running each program in turn. One means by which this is done is with a special signal called an interrupt which can periodically cause the computer to stop executing instructions where it was and do something else instead. By remembering where it was executing prior to the interrupt, the computer can return to that task later. If several programs are running "at the same time", then the interrupt generator might be causing several hundred interrupts per second, causing a program switch each time. Since modern computers typically execute instructions several orders of magnitude faster than human perception, it may appear that many programs are running at the same time even though only one is ever executing in any given instant. This method of multitasking is sometimes termed "time-sharing" since each program is allocated a "slice" of time in turn. Before the era of cheap computers, the principle use for multitasking was to allow many people to share the same computer. Seemingly, multitasking would cause a computer that is switching between several programs to run more slowly - in direct proportion to the number of programs it is running. However, most programs spend much of their time waiting for slow input/output devices to complete their tasks. If a program is waiting for the user to click on the mouse or press a key on the keyboard, then it will not take a "time slice" until the event it is waiting for has occurred. This frees up time for other programs to execute so that many programs may be run at the same time without unacceptable speed loss.

Multiprocessing
Some computers may divide their work between one or more separate CPUs, creating a multiprocessing configuration. Traditionally, this technique was utilized only in large and powerful computers such as supercomputers, mainframe computers and servers. However, multiprocessor and multi-core (multiple CPUs on a single integrated circuit) personal and laptop computers have become widely available and are beginning to see increased usage in lower-end markets as a result. Supercomputers in particular often have highly unique architectures that differ significantly from the basic stored-program architecture and from general purpose computers. They often feature thousands of CPUs, customized high-speed interconnects, and specialized computing hardware. Such designs tend to be useful only for specialized tasks due to the large scale of program organization required to successfully utilize most of a the available resources at once. Supercomputers usually see usage in large-scale simulation, graphics rendering, and cryptography applications, as well as with other so-called "embarrassingly parallel" tasks.

Networking and the Internet
Computers have been used to coordinate information in multiple locations since the 1950s. The U.S. military's SAGE system was the first large-scale example of such a system, which led to a number of special-purpose commercial systems like Sabre. In the 1970s, computer engineers at research institutions throughout the United States began to link their computers together using telecommunications technology. This effort was funded by ARPA (now DARPA), and the computer network that it produced was called the ARPANET. The technologies that made the Arpanet possible spread and evolved. In time, the network spread beyond academic and military institutions and became known as the Internet. The emergence of networking involved a redefinition of the nature and boundaries of the computer. Computer operating systems and applications were modified to include the ability to define and access the resources of other computers on the network, such as peripheral devices, stored information, and the like, as extensions of the resources of an individual computer. Initially these facilities were available primarily to people working in high-tech environments, but in the 1990s the spread of applications like e-mail and the World Wide Web, combined with the development of cheap, fast networking technologies like Ethernet and ADSL saw computer networking become almost ubiquitous. In fact, the number of computers that are networked is growing phenomenally. A very large proportion of personal computers regularly connect to the Internet to communicate and receive information. "Wireless" networking, often utilizing mobile phone networks, has meant networking is becoming increasingly ubiquitous even in mobile computing environments.

Baca Selanjutnya - Computer
← 

Artikel Terbaru

Translate This Page

English French German Spain

Italian Dutch Russian Brazil

Japanese