Linux Tips #13



---------------------------------------------------------------

If you like Tip of the Day please share it with friends and 
co-workers, and encourage them to sign up! It's free. You can
unsubscribe or change your e-mail address at any time.

To subscribe to or unsubscribe from this newsletter:
* Use your browser to visit our Newsletter Subscription Center:
  http://www.winmag.com/subscribe/
* Scroll down to the Tip of the Day section.
* Click "Choose an option," and select Subscribe or Unsubscribe.
* Scroll to the top of the page, and type your e-mail address 
  in the "E-mail" field.
* Click the Submit button below your e-mail address.

Copyright 2000 CMP Media Inc. A service of Winmag.com.
http://www.winmag.com/

Distributed by MessageMedia Inc. - http://www.messagemedia.com

---------------------------------------------------------------


*1. THE EXTENSIBLE ELF FILE FORMAT                 
        
Originally, Linux used a simple format for binary files, which
 made the process of creating and maintaining shared libraries
 tedious and error-prone. At a later stage, this format was
 replaced by the Extensible Executable and Linking Format
 (Extensible ELF) file format. Object files, libraries, shared
 libraries, and executable files now use the new format, which
 facilitates the process of creating, using, and maintaining
 shared libraries. The following file provides more information
 about the Linux-specific ELF standard: 

ftp://tsx-11.mit.edu/pub/linux/packages/GCC/elf.ps.gz


*2. BLOCKED SIGNALS                 
        
A process can block incoming signals for a short time. This is
 usually done when the process is performing a sensitive task.
 If a signal is sent to a process that is blocking that signal,
 the signal remains pending until the process is ready again to
 handle it. Thus, blocked signals are not lost.


*3. MYSQL GOES GPL                 
        
MySQL is a multiuser, multithreaded SQL database server. In
 essence, it is a client/server implementation that consists of a
 server daemon and client programs and libraries. The latest
 version of MySQL, 3.20.32a, was released under GPL terms, which
 means that MySQL is now an Open Source product. You can find
 more info about MySQL at  

ftp://tsx-11.mit.edu/pub/linux/packages/GCC/elf.ps.gz


*4. THE INIT PROCESS                 
        
The init process is the first process invoked when you boot a
 Linux machine. It is the only process started by the kernel, and
 it always has a process ID (pid) 1. The init process is
 responsible for starting other processes on the system. In
 addition, it automatically becomes the parent of orphaned
 processes so that they don't turn into zombies.


*5. ORPHANED PROCESSES
        
A process that creates a new process is known as the parent of
 the new process. The parent process is notified when the child
 process ends. When the parent process exits, its child process
 becomes an orphan process. Orphan processes automatically become
 children of the init process.


*6. LINUX WEB WATCHER                 
        
The Linux Web Watcher site maintains an index of Linux-related
 sites, applications, magazines, development tools, and news.
 Unlike other links pages, Web Watcher automatically keeps track
 of when the listed pages were last updated, so you don't have to
 waste time checking whether your favorite Web page has been
 updated since your last visit to it. The Linux Web Watcher is at 

http://www.webwatcher.org


*7. CREATING A CHILD PROCESS                 
        
The system call fork() is the most popular method of creating a
 child process. Remember that unlike ordinary functions, every
 invocation of fork() returns twice: once in the parent, and once
 in the child process. The order of returns is unspecified. The
 return values differ. In the parent process, fork() returns the
 pid of the newly created child. In the child process, fork()
 always returns 0.


*8. LINUX CENTER                 
        
The Linux Center project maintains an index of Web pages about
 Linux, its applications, and general issues related to the Free
 Software movement. The site also contains links to online
 magazines, search engines, applications, and articles about
 Linux. The Linux Center Web site is at 

http://www.linux-center.org/en/ 


*9. REAL-TIME COMPUTING                 
        
The term "real-time" has become a buzzword, as in "real-time
 stock quotes" or "real-time database queries." However, neither
 a database-oriented system nor a NYSE stock ticker running on
 your desktop is truly a real-time application. Contrary to
 common belief, "real-time" doesn't mean "fast response time" or
 "low latency"; rather, it means a totally deterministic
 (predictable) response time. If you execute the same database
 query twice, each execution time will be different because of
 extraneous factors such as the number of users connected to the
 database, system load, the distance of the disk sector that
 contains the database records from the read/write magnetic head,
 the size of available memory, and so on. In other words, a
 database query is not a real-time operation, nor can it be. 

On the other hand, a cellular phone must operate in real-time
 mode: the chipset that receives the airborne digital signals
 must demodulate, filter, and correct these signals within a
 fixed amount of time, every time. Not on average, not most of
 the time, but every time. Note that even a hundredth of second
 delay is unacceptable in this case: the digital signals keep
 coming in. If they are not processed in their allotted time
 slice, they are simply overrun by incoming signals (think of a
 Web-based media player that skips frames when displaying a video
 clip). To conclude, in real-time computing, your primary concern
 is not average response time, but worst-case response time. 

Many operating systems, including Linux, are unsuitable for
 real-time applications because of their kernel design. In future
 tips, we will explore real-time Linux variants.


*10. REAL-TIME COMPUTING--THE RTLINUX OPERATING SYSTEM                 
        
Linux is not a real-time operating system; it provides the best
 average response time: when it is loaded down, it gracefully
 degrades the performance of all running processes. In real-time
 computing, this is unacceptable. RTLinux is a Linux-based
 operating system that supports real-time computing. It is widely
 used as a desktop real-time OS, but it is less favorable as an
 embedded system. RTLinux is an open source product, distributed
 under the GPL terms. You can find more info about it and
 download its source code from: 

http://www.rtlinux.org/~rtlinux
