Intermec ck1 Reference Guide

Page of 390
Appendix A — 
µClinux System 
CK1 SDK Programmer’s Reference Manual 
301 
Accessing the devices and services that the files represent is done through 
the system calls. The file system that you see is actually a user-level view of 
the physical organization of the hard drive. When interacting with these 
low-level components, the actual operation is done by the Kernel mode 
through a system call. It provides methods for file-system calls like open, 
close, and ioctl, which pass the control information to a device driver.  
Linux also provides higher level interface services and devices. This action 
is done through a standard library, which includes a set of functions that 
can be used instead of the actual system calls. They are much more flexible 
than the actual system calls, providing a buffered output. This way the 
programmers do not have to take care of varying sizes of data blocks, and 
the overhead of the system call is minimized. 
One major advantage of Linux is that it supports a variety of different file 
systems, which makes it exceedingly flexible and allows easy access to other 
operating systems file systems. Nowadays, Linux supports a variety of 
different file systems from different platforms, including msdos and vfat 
from windows, Mac OS file system, and even the file system from Amiga. 
Linux allows these file formats to be transparently mounted to the Linux 
system through a common virtual file system (VFS). The VFS is actually a 
kernel software layer providing all system calls related to a standard UNIX 
file system. Supported file systems are invoked through this software layer 
so that all file systems appear identical to the rest of the Linux kernel and 
to the programs running in the Linux system. The function of VFS is 
totally transparent to you, after you have mounted the accessed disk or 
partition as part of the source tree file system to Linux. After the file 
system operation is made, the kernel actually calls functions defined in 
VFS-interface, which takes care of non-file system dependent operations 
and forward the call to appropriate file system functions.  
The VFS has to also take care of the modifications that you might do to 
the files on a mounted file system. The write and read commands to the 
different file systems are done through specified device drivers for the 
different file systems. As the real file systems read data from the physical 
disk, the block device driver is used to read physical blocks from the device 
that they control. The files read from this block are then saved into a 
buffer cache shared by all of the file systems and the Linux kernel. Here it 
is buffered with an identifier according to its block number and a unique 
identifier for the device that read it. This functionality enables the data 
access to the same data without needing to retrieve it each time separately.  
Networking Interface 
Linux has a strong networking support, supporting many different 
networking protocols including the most common TCP/UDP, IP, and 
Ethernet. The networking messaging system is structured with several 
different layers, each of the layers using the services of another, with 
Internet protocol (IP) being at the heart of it. When an application 
generates network traffic, it sends packets through the socket layers to a 
transport layer (TCP or UDP), which forwards them to the IP layer. In