130 likes | 258 Views
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 :
E N D
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: 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.
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
Open vs. Closed(Openness: Interface or Implementation?) • Open: Internet (interface), Linux (implementation) • Closed: IBM SNA (Structured Network Architecture), Microsoft • Virtues to open interface • Interoperability • Virtues to open implementation • World-wide contributors • Fast updates and patches • Better code quality
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
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 implemented as kernel space program • hardware-dependent processing should be implemented as device drivers • Following these guidelines, where to implement what in • Linux systems becomes obvious.
Software Architecture in Linux Systems(Where to Implement What?) With forwarding in IP, error control mostly in TCP and some in IP and UDP,andtraffic control in TCP, but all implemented into the Linux kernel, one questionremains: • Where should we put the control-plane operations of the Internet? • Theyinclude routing in RIP, OSPF, and BGP, error reporting in ICMP, host configurationin DHCP, etc.
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.
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.
Linux Kernel • Figure 1.15 displays the key components inside the Linux kernel.
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 .
Interface Drivers • Figure 1.17 shows the driver for a network interface card.