1.4 Open source implement

12
1.4 Open source implement

description

1.4 Open source implement. Open source implement. Open vs. Closed Software Architecture in Linux Systems Linux Kernel Clients and Daemon Servers Interface Drivers. Open vs. Closed ( Vendors: System, IC, Hardware, and Software ). major components in a system : - PowerPoint PPT Presentation

Transcript of 1.4 Open source implement

Page 1: 1.4 Open source implement

1.4 Open source implement

Page 2: 1.4 Open source implement

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

Page 3: 1.4 Open source implement

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 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 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

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, though they do not provide services directly. 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

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

Given the above process model, several observations can be applied to decidewhere to implement what.application-independent programs should be implementedhardware-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

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 9: 1.4 Open source implement

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 10: 1.4 Open source implement

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

Page 11: 1.4 Open source implement

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 12: 1.4 Open source implement

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