Top Banner
1.4 Open source implement
13

1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Jan 01, 2016

Download

Documents

Hilda Cobb
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

1.4 Open source implement

Page 2: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Open source implementOpen vs. ClosedSoftware Architecture in Linux SystemsLinux KernelClients and Daemon ServersInterface Drivers

Page 3: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Open vs. Closed(Vendors: System, IC, Hardware, and Software)major components in a system: software, hardware, and IC components

On a host, the Internet architecture is mostly implemented in software and partially in ICs.

The implementation in a router is similar except that parts of the protocol implementation might be shifted from software to ICs if the CPU cannot deliver the desired wire-speed processing.

Page 4: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Open vs. Closed(From Proprietary, Third-Party, to Open Source) There exist three ways to implement the Internet architecture into a system which is either a host or a router. They are (1) proprietary closed (2) third-party closed (3) open source

Page 5: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Open vs. Closed(Openness: Interface or Implementation?)Open: Internet (interface), Linux (implementation)Closed: IBM SNA (Structured Network Architecture), MicrosoftVirtues to open interface• Interoperability

Virtues to open implementation•World-wide contributors• Fast updates and patches•Better code quality

Page 6: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Software Architecture in Linux Systems(The Process Model)Linux system has user space and kernel space programs Kernel space processes reside in the kernel memory space to manage the operations of the system so as to provide services to user space processes. User space processes reside in the user memory space and can run in the foreground as application clients or the background as application servers

Page 7: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Software Architecture in Linux Systems(Where to Implement What?)

Given the above process model, several observations can be applied to decide where to implement what.application-independent programs should be implementedas kernel space programhardware-dependent processing should be implemented as device drivers

Following these guidelines, where to implement what in Linux systems becomes obvious.

Page 8: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Software Architecture in Linux Systems(Where to Implement What?) With forwarding in IP, error control mostly in TCP and some in IP and UDP,and traffic control in TCP, but all implemented into the Linux kernel, one question remains: Where should we put the control-plane operations of the Internet? They include routing in RIP, OSPF, and BGP, error reporting in ICMP, host configuration in DHCP, etc.

Page 9: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Software Architecture in Linux Systems(Inside a Router and a Host) Figure 1.13 illustrates the common operations of a router. The routing protocols (RIP, OSPF, BGP, etc.) are implemented in daemon programs.

Page 10: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Software Architecture in Linux Systems(Inside a Router and a Host) Figure 1.14 shows the operations of a server host machine. The servers of various application protocols are implemented in daemon programs.

The obvious difference between a host and a router is that there is no packet forwarding in a host, and hence it needs only one link interface or adaptor card.

Page 11: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Linux Kernel Figure 1.15 displays the key components inside the Linux kernel.

Page 12: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Clients and Daemon Servers For networking services, the socket APIs provide a set of system calls for a user-space process to communicate with another remote user-space process , generate its own IP packets, listen to an interface card directly or talk to the kernel of the same machine.

These sockets are illustrated in Figure 1.16 .

Page 13: 1.4 Open source implement. Open source implement Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface.

Interface Drivers Figure 1.17 shows the driver for a network interface card.