Misplaced Pages

Oracle Net Services

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

In the field of database computing , Oracle Net Services consists of sets of software which enable client applications to establish and maintain network sessions with Oracle Database servers . Since Oracle databases operate in and across a variety of software and hardware environments, Oracle Corporation supplies high-level transparent networking facilities with the intention of providing networking functionality regardless of differences in nodes and protocols .

#229770

34-575: Oracle Corporation defines Oracle Net Services as comprising: Oracle Net, a proprietary networking stack , runs both on client devices and on Oracle database servers in order to set up and maintain connections and messaging between client applications and servers. Oracle Net (formerly called "SQL*Net" or "Net8") comprises two software components: The listener process(es) on a server detect incoming requests from clients for connection - by default on port 1521 - and manage network-traffic once clients have connected to an Oracle database. The listener uses

68-463: A GUI tool, configures Oracle Net Services for an Oracle home on a local client or server host. (Prior to Oracle 9i known as "Net8 Assistant".) Oracle software integrating closely with and/or depending on Oracle Net Services includes: Protocol stack The protocol stack or network stack is an implementation of a computer networking protocol suite or protocol family . Some of these terms are used interchangeably but strictly speaking,

102-618: A message-based protocol for communicating with their devices—as user-mode drivers. If such drivers malfunction, they do not cause system instability. The Kernel-Mode Driver Framework (KMDF) model continues to allow development of kernel-mode device drivers, but attempts to provide standard implementations of functions that are known to cause problems, including cancellation of I/O operations, power management, and plug and play device support. Apple has an open-source framework for developing drivers on macOS , called I/O Kit. In Linux environments, programmers can build device drivers as parts of

136-417: A common protocol stack is a spanning layer , a term coined by David Clark Certain protocols are designed with the specific purpose of bridging differences at the lower layers, so that common agreements are not required there. Instead, the layer provides the definitions that permit translation to occur between a range of services or technologies used below. Thus, in somewhat abstract terms, at and above such

170-425: A configuration-file - listener.ora - to help keep track of names, protocols, services and hosts. The listener.ora file can include three sorts of parameters: Apart from pre-defined and known statically-registered databases, a listener can also accept dynamic service registration from a database. The Oracle Connection Manager (CMAN) acts as a lightweight router for Oracle Net packets. Oracle Net Manager,

204-419: A hardware device and the applications or operating systems that use it. Programmers can write higher-level application code independently of whatever specific hardware the end-user is using. For example, a high-level application for interacting with a serial port may simply have two functions for "send data" and "receive data". At a lower level, a device driver implementing these functions would communicate to

238-528: A layer common standards contribute to interoperation, while below the layer translation is used. Such a layer is called a spanning layer in this paper. As a practical matter, real interoperation is achieved by the definition and use of effective spanning layers. But there are many different ways that a spanning layer can be crafted. In the Internet protocol stack, the Internet Protocol Suite constitutes

272-473: A protocol, for example Point-to-Point Protocol ). However, neither of these two protocols will be able to transport information from A to C , because these computers are conceptually on different networks. An inter-network protocol is required to connect them. One could combine the two protocols to form a powerful third, mastering both cable and wireless transmission, but a different super-protocol would be needed for each possible combination of protocols. It

306-419: A software interface to hardware devices, enabling operating systems and other computer programs to access hardware functions without needing to know precise details about the hardware being used. A driver communicates with the device through the computer bus or communications subsystem to which the hardware connects. When a calling program invokes a routine in the driver, the driver issues commands to

340-415: A spanning layer that defines a best-effort service for global routing of datagrams at Layer 3 . The Internet is the community of interoperation based on this spanning layer. Device driver In the context of an operating system , a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton . A driver provides

374-413: A system if the device is erroneously programmed . These factors make it more difficult and dangerous to diagnose problems. The task of writing drivers thus usually falls to software engineers or computer engineers who work for hardware-development companies. This is because they have better information than most outsiders about the design of their hardware. Moreover, it was traditionally considered in

SECTION 10

#1733094209230

408-437: A target for exploits . Bring Your Own Vulnerable Driver (BYOVD) uses signed, old drivers that contain flaws that allow hackers to insert malicious code into the kernel. Drivers that may be vulnerable include those for WiFi and Bluetooth, gaming/graphics drivers, and drivers for printers. There is a lack of effective kernel vulnerability detection tools, especially for closed-source OSes such as Microsoft Windows where

442-468: Is easier to leave the base protocols alone and design a protocol that can work on top of any of them (the Internet Protocol is an example). This will make two stacks of two protocols each. The inter-network protocol will communicate with each of the base protocols in their simpler language; the base protocols will not talk directly to each other. A request on computer A to send a chunk of data to C

476-563: Is important that the hardware manufacturer provide information on how the device communicates. Although this information can instead be learned by reverse engineering , this is much more difficult with hardware than it is with software. Microsoft has attempted to reduce system instability due to poorly written device drivers by creating a new framework for driver development, called Windows Driver Frameworks (WDF). This includes User-Mode Driver Framework (UMDF) that encourages development of certain types of drivers—primarily those that implement

510-407: Is improved stability, since a poorly written user-mode device driver cannot crash the system by overwriting kernel memory. Because of the diversity of modern hardware and operating systems, drivers operate in many different environments. Drivers may interface with: Common levels of abstraction for device drivers include: So choosing and installing the correct device drivers for given hardware

544-472: Is often a key component of computer system configuration. Virtual device drivers represent a particular variant of device drivers. They are used to emulate a hardware device, particularly in virtualization environments, for example when a DOS program is run on a Microsoft Windows computer or when a guest operating system is run on, for example, a Xen host. Instead of enabling the guest operating system to dialog with hardware, virtual device drivers take

578-416: Is taken by the upper protocol, which (through whatever means) knows that C is reachable through B . It, therefore, instructs the wireless protocol to transmit the data packet to B . On this computer, the lower layer handlers will pass the packet up to the inter-network protocol, which, on recognizing that B is not the final destination, will again invoke lower-level functions. This time, the cable protocol

612-504: Is that they can be loaded only when necessary and then unloaded, thus saving kernel memory. Depending on the operating system, device drivers may be permitted to run at various different privilege levels . The choice of which level of privilege the drivers are in is largely decided by the type of kernel an operating system uses. An operating system which uses a monolithic kernel , such as the Linux kernel , will typically run device drivers with

646-435: Is used to send the data to C . There, the received packet is again passed to the upper protocol, which (with C being the destination) will pass it on to a higher protocol or application on C . In practical implementation, protocol stacks are often divided into three major sections: media, transport, and applications. A particular operating system or platform will often have two well-defined software interfaces: one between

680-400: Is via protection rings . On many systems, such as those with x86 and ARM processors, switching between rings imposes a performance penalty, a factor that operating system developers and embedded software engineers consider when creating drivers for devices which are preferred to be run with low latency, such as network interface cards . The primary benefit of running a driver in user mode

714-597: The Microsoft Windows and DOS environment. The application-to-transport interface defines how application programs make use of the transport layers. For example, this interface level would define how a web browser program would talk to TCP/IP transport software. Examples of these interfaces include Berkeley sockets and System V STREAMS in Unix-like environments, and Winsock for Microsoft Windows. An important feature of many communities of interoperability based on

SECTION 20

#1733094209230

748-609: The PCI bus or USB is identified by two IDs which consist of two bytes each. The vendor ID identifies the vendor of the device. The device ID identifies a specific device from that manufacturer/vendor. A PCI device has often an ID pair for the main chip of the device, and also a subsystem ID pair that identifies the vendor, which may be different from the chip manufacturer. Computers often have many diverse and customized device drivers running in their operating system (OS) kernel which often contain various bugs and vulnerabilities , making them

782-525: The kernel , separately as loadable modules , or as user-mode drivers (for certain types of devices where kernel interfaces exist, such as for USB devices). Makedev includes a list of the devices in Linux, including ttyS (terminal), lp ( parallel port ), hd (disk), loop, and sound (these include mixer , sequencer , dsp , and audio). Microsoft Windows .sys files and Linux .ko files can contain loadable device drivers. The advantage of loadable device drivers

816-462: The suite is the definition of the communication protocols , and the stack is the software implementation of them. Individual protocols within a suite are often designed with a single purpose in mind. This modularization simplifies design and evaluation. Because each protocol module usually communicates with two others, they are commonly imagined as layers in a stack of protocols. The lowest protocol always deals with low-level interaction with

850-408: The communications hardware. Each higher layer adds additional capabilities. User applications usually deal only with the topmost layers. Imagine three computers: A , B , and C . A and B both have radio equipment and can communicate via the airwaves using a suitable network protocol (such as IEEE 802.11 ). B and C are connected via a cable, using it to exchange data (again, with the help of

884-417: The device (drives it). Once the device sends data back to the driver, the driver may invoke routines in the original calling program. Drivers are hardware dependent and operating-system-specific. They usually provide the interrupt handling required for any necessary asynchronous time-dependent hardware interface. The main purpose of device drivers is to provide abstraction by acting as a translator between

918-587: The hardware manufacturer 's interest to guarantee that their clients can use their hardware in an optimal way. Typically, the Logical Device Driver (LDD) is written by the operating system vendor, while the Physical Device Driver (PDD) is implemented by the device vendor. However, in recent years, non-vendors have written numerous device drivers for proprietary devices, mainly for use with free and open source operating systems . In such cases, it

952-438: The media and transport layers, and one between the transport layers and applications. The media-to-transport interface defines how transport protocol software makes use of particular media and hardware types and is associated with a device driver . For example, this interface level would define how TCP/IP transport software would talk to the network interface controller . Examples of these interfaces include ODI and NDIS in

986-446: The opposite role and emulates a piece of hardware, so that the guest operating system and its drivers running inside a virtual machine can have the illusion of accessing real hardware. Attempts by the guest operating system to access the hardware are routed to the virtual device driver in the host operating system as e.g.,  function calls . The virtual device driver can also send simulated processor-level events like interrupts into

1020-402: The particular serial port controller installed on a user's computer. The commands needed to control a 16550 UART are much different from the commands needed to control an FTDI serial port converter, but each hardware-specific device driver abstracts these details into the same (or similar) software interface. Writing a device driver requires an in-depth understanding of how the hardware and

1054-509: The same privilege as all other kernel objects. By contrast, a system designed around microkernel , such as Minix , will place drivers as processes independent from the kernel but that use it for essential input-output functionalities and to pass messages between user programs and each other. On Windows NT , a system with a hybrid kernel , it is common for device drivers to run in either kernel-mode or user-mode . The most common mechanism for segregating memory into various privilege levels

Oracle Net Services - Misplaced Pages Continue

1088-444: The software works for a given platform function. Because drivers require low-level access to hardware functions in order to operate, drivers typically operate in a highly privileged environment and can cause system operational issues if something goes wrong. In contrast, most user-level software on modern operating systems can be stopped without greatly affecting the rest of the system. Even drivers executing in user mode can crash

1122-452: The source code of the device drivers is mostly not public (open source) and drivers often have many privileges. A group of security researchers considers the lack of isolation as one of the main factors undermining kernel security , and published an isolation framework to protect operating system kernels, primarily the monolithic Linux kernel whose drivers they say get ~80,000 commits per year. An important consideration in

1156-451: The virtual machine. Virtual devices may also operate in a non-virtualized environment. For example, a virtual network adapter is used with a virtual private network , while a virtual disk device is used with iSCSI . A good example for virtual device drivers can be Daemon Tools . There are several variants of virtual device drivers, such as VxDs , VLMs , and VDDs. Solaris descriptions of commonly used device drivers: A device on

#229770