Web hosting - Chapter 28 . Programming Environments and Interfaces 755

Chapter 28 . Programming Environments and Interfaces 755 As you will discover, some of the graphical IDEs provide comfortable editors for writing code, drawing dialog boxes, and navigating the file system, but use the command-line tools to do the work of compiling the code, hiding the command-line tools beneath an attractive interface. The Linux Development Environment The Linux development environment consists of the services and capabilities provided by the kernel and core system components. These services and capabilities both define and limit how to write programs that run on a Linux system. Consider files and the file system. Linux, like the UNIX systems on which it is modeled, is built on the key idiom that everything is file. This is a powerful metaphor and model that dramatically simplifies writing application programs to communicate with all sorts of devices. How? You can use the same function, the write() system call, to write data to a text file; to send data to a printer; to send keystrokes to an application; and, if you had one, to tell your network-connected coffee pot to brew another pot of coffee. The file metaphor works this way because Linux treats all devices, such as modems, monitors, CD-ROM drives, disc drives, keyboards, mice, and printers as if they were files. Device drivers, which are part of the kernel, sit between a device and the user and application trying to access it. A device driver translates an application s write() call into a form that the device can understand. So, if an application uses the write() system call to write data to a text file on an ext3 file system, the ext3 driver writes the necessary bytes to a file on the disk, but if the application later uses the write() system call to write that same data to a printer, the printer driver transmits that data out the parallel port (or across the network) to the printer in a manner that the printer can understand and interpret. This is one way in which the Linux development environment informs, or defines, writing programs on a Linux system. The catch? If the device you want to use doesn t have a driver, you can t use the write() call to do anything with that device. You simply do not have a way to communicate with the device. This is how the Linux development environment constrains programming on a Linux system. What, then, in addition to the file idiom already discussed, are the key features of Linux that characterize its development environment? In no particular order: . The process model . CPU and memory protection . The security model
We recommend you use shared web hosting services, because many users agree that it is cheap, reliable and customer-satisfying webhost.

Leave a Reply