Online Documentation Server
 ПОИСК
ods.com.ua Web
 КАТЕГОРИИ
Home
Programming
Net technology
Unixes
Security
RFC, HOWTO
Web technology
Data bases
Other docs

 


 ПОДПИСКА

 О КОПИРАЙТАХ
Вся предоставленная на этом сервере информация собрана нами из разных источников. Если Вам кажется, что публикация каких-то документов нарушает чьи-либо авторские права, сообщите нам об этом.




init comes first Next Up Previous Contents Index
Next: Configuring init to start Up: init Previous: init

 

init comes first

init  is one of those programs that are absolutely essential to the operation of a Linux system, but that you still can mostly ignore. A good Linux distribution will come with a configuration for init  that will work for most systems, and on these systems there is nothing you need to do about init . Usually, you only need to worry about init  if you hook up serial terminals, dial-in (not dial-out) modems, or if you want to change the default run level.

When the kernel has started itself (has been loaded into memory, has started running, and has initialized all device drivers and data structures and such), it finishes its own part of the boot process by starting a user level program, init . Thus, init  is always the first process (its process number is always 1).

The kernel looks for init  in a few locations that have been historically used for it, but the proper location for it (on a Linux system) is /sbin/init . If the kernel can't find init , it tries to run /bin/sh , and if that also fails, the startup of the system fails.

When init  starts, it finishes the boot process by doing a number of administrative tasks, such as checking filesystems, cleaning up /tmp , starting various services, and starting a getty  for each terminal and virtual console where users should be able to log in (see chapter 8).

After the system is properly up, init  restarts getty  for each terminal after a user has logged out (so that the next user can log in). init  also adopts orphan processes: when a process starts a child process and dies before its child, the child immediately becomes a child of init . This is important for various technical reasons, but it is good to know it, since it makes it easier to understand process lists and process tree graphs.gif

There are a few variants of init  available. Most Linux distributions use sysvinit  (written by Miquel van Smoorenburg), which is based on the System V init  design. The BSD versions of Unix have a different init . The primary difference is run levels: System V has them, BSD does not (at least traditionally). This difference is not essential. We'll look at sysvinit  only.


Next Up Previous Contents Index
Next: Configuring init to start Up: init Previous: init

Lars Wirzenius
Sat Nov 15 02:32:11 EET 1997


With any suggestions or questions please feel free to contact us