![]() |
![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]()
|
Among many of my areas of interest related to Information Technology, I have discussed about some of my favorites in this page.
Introduction: In computing, an operating system (OS) is the system software responsible for the direct control and management of hardware and basic system operations, as well as running application software such as word processing programs and Web browsers. In general, the operating system is the first layer of software loaded into computer memory when it starts up. As the first software layer, all other software that gets loaded after it, depends on this software to provide them with various common core services. These common core services include, but are not limited to: disk access, memory management, task scheduling, and user interfacing. Since these basic common services are assumed to be provided by the OS, there is no need to re-implement those same functions over and over again in every other piece of software that you may use. The portion of code that performs these core services is called the "kernel" of the operating system. Operating system kernels evolved from libraries that provided the core services into unending programs that control system resources because of the early needs of accounting for computer usage and then protecting those records. Operating systems can be classified as follows:
Some Operating Systems:
Object Oriented Programming (OOP) Object-oriented programming (OOP) is a computer programming paradigm that emphasizes the following aspects:
Some Object Oriented languages
The Java language is an object-oriented
programming language created by James Gosling and other engineers at
Sun Microsystems. It was developed in 1991, as part of the Green Project,
and officially announced on May 23, 1995, at SunWorld; being released in
November. Gosling and friends initially designed Java, which was called
Oak at first (in honour of a tree outside Gosling's office), to replace
C++ (although the feature set better resembles that of Objective C). The
Java specifications are community-maintained through the Sun-managed Java
Community Process. Sun holds a trademark on the Java name. The four primary goals in the creation of the Java language:
Platform Independence Platform Independence, means that programs written in the Java language must run similarly on diverse hardware. One should be able to write a program once and run it anywhere. This is achieved by most compilers by compiling the Java language code "halfway" to bytecode—simplified machine instructions specific to the Java platform. The code is then run on a virtual machine (VM), a program written in native code on the host hardware that translates generic Java bytecode into usable code on the hardware. Further, standardized libraries are provided to allow access to features of the host machines (such as graphics, threading and networking) in unified ways. J2EE Java 2 Platform, Enterprise Edition or J2EE is a Standard (albeit with no ISO or ECMA standard) for developing distributed Multi-tier architecture applications, based on modular components. It uses several technologies, including JDBC and CORBA, and extends their functionality with Enterprise Java Beans, Java Servlets, Java Server Pages and XML technologies. This allows the developer to create an Enterprise Application that is portable between platforms and scalable, while integrating with several legacy technologies. The J2EE APIs includes several technologies that extend the functionality of the base J2SE APIs. javax.ejb.* : The Enterprise Java Beans API defines a set of APIs that a distributed object container will support in order to provide persistence, remote communication (using RMI), concurrency control, and access control for distributed objects. javax.servlet : The Servlets API defines a set of APIs between a web container and a servlet that is responsible for processing requests and issuing responses. javax.servlet.jsp : The javax.servlet.jsp and javax.servlet.jsp.tagext packages define the JavaServer Pages API. javax.naming : The javax.naming, javax.naming.directory, javax.naming.event, javax.naming.ldap and javax.naming.spi packages define the Java Naming and Directory Interface (JNDI) API. java.sql, javax.sql : The java.sql and javax.sql packages define the Java Database Connectivity (JDBC) API java.transaction.* : These packages define the Java Transaction API (JTA) javax.xml.* : These packages define the JAXP API javax.jms.* : These packages define the Java Message Service (JMS) API Favorite Java Links
OSI Reference Model
The Open Systems Interconnection Reference Model (OSI
Model or OSI Reference Model for short) is a layered abstract description
for communications and computer network protocol design, developed as part
of the Open Systems Interconnect initiative. It is also called the OSI seven
layer model. The model divides the functions of a protocol into a series of layers. Each layer has the property that it only uses the functions of the layer below, and only exports functionality to the layer above. A system that implements protocol behaviour consisting of a series of these layers is known as a 'protocol stack' or 'stack'. Protocol stacks can be implemented either in hardware or software, or a mixture of both. Typically, only the lower layers are implemented in hardware, with the higher layers being implemented in software. Description of Layers "Physical layer" Layer 1. : The physical layer defines all electrical and physical specifications for devices. This includes the layout of pins, voltages, and cable specifications. Hubs and repeaters are physical-layer devices. The major functions and services performed by the physical layer are:
"Data link layer" Layer 2. : The Data link layer provides the functional and procedural means to transfer data between network entities and to detect and possibly correct errors that may occur in the Physical layer. The addressing scheme is physical which means that the addresses are hard-coded into the network cards at the time of manufacturer. The addressing scheme is flat. Note: The best know example of this is Ethernet. Other examples of data link protocols are HDLC and ADCCP for point-to-point or packet-switched networks and LLC for local area networks. This is the layer that hubs and switches operate. Connectivity among locally attached network nodes. "Network layer" Layer 3. : The Network layer provides the functional and procedural means of transferring variable length data sequences from a source to a destination via one or more networks while maintaining the quality of service requested by the Transport layer. The Network layer performs network routing, flow control, segmentation/desegmentation, and error control functions. The router operates at this layer -- sending data throughout the extended network and making the Internet possible, although there are layer 3 (or IP) switches. This is a logical addressing scheme - values are chosen by the network engineer. The addressing scheme is hierarchical. "Transport layer" Layer 4. : The purpose of the Transport layer is to provide transparent transfer of data between end users, thus relieving the upper layers from any concern with providing reliable and cost-effective data transfer. The transport layer controls the reliability of a given link. Some protocols are stateful and connection oriented. This means that the session layer can keep track of the packets and retransmit those that fail. "Session layer" Layer 5. : The Session layer provides the mechanism for managing the dialogue between end-user application processes. It provides for either duplex or half-duplex operation and establishes checkpointing, adjournment, termination, and restart procedures. This layer is responsible for setting up and tearing down TCP/IP sessions. "Presentation layer" Layer 6. : The Presentation layer relieves the Application layer of concern regarding syntactical differences in data representation within the end-user systems. MIME encoding, encryption and similar manipulation of the presentation of data is done at this layer. An example of a presentation service would be the conversion of an EBCDIC-coded text file to an ASCII-coded file.
"Application layer" Layer 7, the highest layer.
: This layer interfaces directly to and performs common application services
for the application processes. The common application services provide
semantic conversion between associated application processes. Examples of
common application services include the virtual file, virtual terminal, and
job transfer and manipulation protocols. TCP / IP Protocol Stack The internet protocol suite is the set of protocols that implement the protocol stack on which the Internet runs. It is sometimes called the TCP/IP protocol suite, after the two most important protocols in it: the Transmission Control Protocol (TCP) and the Internet Protocol (IP), which were also the first two defined. The internet protocol suite can be described by analogy with the OSI model, which describes the layers of a protocol stack, not all of which correspond well with internet practice. In a protocol stack, each layer solves a set of problems involving the transmission of data, and provides a well-defined service to the higher layers. Higher layers are logically closer to the user and deal with more abstract data, relying on lower layers to translate data into forms that can eventually be physically manipulated. Description of Layers The Physical layer The Physical layer describes the physical characteristics of the communication, such as conventions about the nature of the medium used for communication (such as wires, fiber optic links or radio links), and all related details such as connectors, channel codes and modulation, signal strengths, wavelength, low-level sychronization and timing and maximum distances. The Data-Link layer The Data link layer specifies how packets are transported over the physical layer, including the framing (i.e. the special bit patterns which mark the start and end of packets). Ethernet, for example, includes fields in the packet header which specify which machine or machines on the network a packet is destined for. Examples of Data-link layer protocols are Ethernet, Wireless Ethernet, SLIP, Token Ring and ATM. PPP is a little more complex, as it was originally specified as a separate protocol which ran on top of another data link layer, HDLC/SDLC. This layer is sometimes further subdivided into Logical Link Control and Media Access Control. The Network layer As originally defined, the Network layer solved the problem of getting packets across a single network. Examples of such protocols are X.25, and the ARPANET's Initial Connection Protocol. With the advent of the concept of internetworking, additional functionality was added to this layer, namely getting data from the source network to the destination network. This generally involves routing the packet across a network of networks, known as an internet. In the internet protocol suite, IP performs the basic task of getting packets of data from source to destination, and also supports other protocols, such as ICMP (used to transmit diagnostic information about IP transmission) and IGMP (used to manage multicast data). ICMP and IGMP are layered on top of IP but perform network layer functions, illustrating an incompatibility between the internet and OSI models. The Network Layer Internet Protocol (IP) can carry data for a number of different higher level protocols. These protocols are each identified by a unique IP Protocol Number. ICMP and IGMP are protocols 1 and 2, respectively. The Transport layer The protocols at the Transport layer can solve problems like reliability ("did the data reach the destination?") and ensure that data arrives in the correct order. In the TCP/IP protocol suite, transport protocols also determine which application any given data is intended for. The dynamic routing protocols which technically fit at this layer in the TCP/IP Protocol Suite (since they run over IP) are generally considered to be part of the Network layer; an example is OSPF . TCP is a "reliable", connection-oriented transport mechanism providing a reliable byte stream, which makes sure data arrives undamaged and in order, is re-transmitted if lost, and eliminates duplicate copies. TCP tries to continuously measure how loaded the network is and throttles its sending rate in order to avoid overloading the network. Furthermore, TCP will attempt to deliver all data correctly in the specified sequence. These are its main differences from UDP and can become disadvantages in real-time streaming or routing applications with high layer 3 loss rates. UDP is a connectionless datagram protocol. It is a "best effort" or "unreliable" protocol - not because it is particularly unreliable, but because it does not verify that packets have reached their destination, and gives no guarantee that they will arrive in order. If an Application requires these guarantees, it must provide them itself, or use TCP. UDP is typically used for applications such as streaming media (audio and video, etc) where the time TCP requires for retransmission and re-ordering might not be available, or for simple query/response applications like DNS lookups, where the overhead of setting up a reliable connection is disproportionately large. Both TCP and UDP are used to carry a number of higher-level applications. The applications at any given network address are distinguished by their TCP or UDP Port Number. By convention certain well known ports are associated with specific applications. RTP is a datagram protocol that is designed for real-time data such as streaming audio and video. Although RTP uses the UDP packet format as a basis, it provides a function that is at the same protocol layer. The Application layer The Application layer is where most common network programs reside. These programs and their corresponding protocols include HTTP (The World Wide Web), FTP (File transport), SMTP (Email), SSH (Secure remote login), DNS (Name <--> IP Address lookups) and many others. Favorite Protocol Site:
|