10 More Discussions You Might Find Interesting
1. Programming
Hello.
I am new to this forum and I would like to ask for advice about low level POSIX programming.
I have to implement a POSIX compliant C shared library.
A file will have some variables and the shared library will have some functions which need those variables.
There is one special... (5 Replies)
Discussion started by: iamjag
5 Replies
2. UNIX for Dummies Questions & Answers
Hi all,
I am setting the memory allocation to 3GB for each user on HPUX 11.23.
I have added ulimit -m 3145728 into the profiles for root and user "X".
When I do ulimit -a for each user I get conflicting values:
user root: memory(kbytes) 3145728
user "X": memory(kbytes) ... (1 Reply)
Discussion started by: macgre_r
1 Replies
3. Programming
I am writing a shared library in Linux (but compatible with other UNIXes) and I want to allow multiple instances to share a piece of memory -- 1 byte is enough. What's the "best" way to do this? I want to optimize for speed and portability.
Obviously, I'll have to worry about mutual exclusion. (0 Replies)
Discussion started by: otheus
0 Replies
4. HP-UX
hi,
i am having problem loading multiple shared libraries. if i load, make call to exposed method and then unload them, everything workds fine, but i have to keep the loaded images in memory,
i am uploading the prog. as loader.zip, it contains
loader - loader.c which loads c++ shared... (2 Replies)
Discussion started by: p.premkumarr
2 Replies
5. HP-UX
Hello!
I need to know the HPUX RAM memory (used & free). When I use the "top" command, I get three values:
<<Memory: 284372K (135276K) real, 236604K (140740K) virtual, 600220K free>>
What does it mean the number in brackets? And... Is it RAM Memory?
Thx in advance! (10 Replies)
Discussion started by: faca317
10 Replies
6. Programming
I need to create a shared library to access an in memory DB. The DB is not huge, but big enough to make it cumbersome to carry around in every single process using the shared library. Luckily, it is pretty static information, so I don't need to worry much about synchronizing the data between... (12 Replies)
Discussion started by: DreamWarrior
12 Replies
7. Programming
hi,
this is the problem: i want to swap a linked list between 4 processes (unrelated), is there any way i can do that just by sending a pointer to a structure?
//example
typedef struct node
{
int x;
char c;
struct node *next;
} node;
or i should send the items ( x,c ) by... (9 Replies)
Discussion started by: elzalem
9 Replies
8. Linux
Hi all :confused: ,
I am new to unix.I have been asked to implement shared memory in user's mode.What does this mean?What is the difference it makes in kernel mode and in users mode?What are the advantages of this impemenation(user's mode)?
And also i would like to know why exactly shared... (0 Replies)
Discussion started by: vijaya2006
0 Replies
9. UNIX for Advanced & Expert Users
I am running HP-UX B.11.11.
I'm increasing a parameter for a database engine so that it uses more memory to buffer the disk drive (to speed up performance). I have over 5GB of memory not being used.
But when I try to start the DB with the increased buffer parameter I get told.
"Not... (1 Reply)
Discussion started by: cjcamaro
1 Replies
10. HP-UX
Dear Unix Gurus,
I am very very new to UNIX.
Apreciate your advice/guidence on the following.
I have a HPUX machine and i want to copy some files from this machines to a windows shared drive.
I am not sure how to go about it.
To my little knowledge i think it is not straight... (5 Replies)
Discussion started by: nicky88
5 Replies
BOOT(7) BOOT(7)
NAME
boot-scripts - General description of boot sequence
DESCRIPTION
The boot sequence varies in details among systems but can be roughly divided to the following steps: (i) hardware boot, (ii) OS loader,
(iii) kernel startup, (iv) init and inittab, (v) boot scripts. We will describe each of these in more detail below.
Hardware-boot
After power-on or hard reset, control is given to a program stored on read only memory (normally PROM). In PC we usually call this program
the BIOS.
This program normally makes a basic self-test of the machine and accesses non-volatile memory to read further parameters. This memory in
the PC is battery-backed CMOS memory, so most people refer to it as the CMOS, although outside of the PC world, it is usually called nvram
(non-volatile ram).
The parameters stored in the nvram vary between systems, but as a minimum, the hardware boot program should know what is the boot device,
or which devices to probe as possible boot devices.
Then the hardware boot stage accesses the boot device, loads the OS Loader, which is located on a fixed position on the boot device, and
transfers control to it.
Note: We do not cover here booting from network. Those who want to investigate this subject may want to research: DHCP, TFTP, PXE, Ether-
boot.
OS Loader
In PC, the OS Loader is located in the first sector of the boot device - this is the MBR (Master Boot Record).
In most systems, this primary loader is very limited due to various constraints. Even on non-PC systems there are some limitations to the
size and complexity of this loader, but the size limitation of the PC MBR (512 bytes including the partition table) makes it almost impos-
sible to squeeze a full OS Loader into it.
Therefore, most operating systems make the primary loader call a secondary OS loader which may be located on a specified disk partition.
In Linux the OS loader is normally lilo(8) or grub(8). Both of them may install either as secondary loaders (where the DOS installed MBR
points to them), or as a two part loader where they provide special MBR containing the bootstrap code to load the second part of the loader
from the root partition.
The main job of the OS Loader is to locate the kernel on the disk, load it and run it. Most OS loaders allow interactive use, to enable
specification of alternative kernel (maybe a backup in case the last compiled one isn't functioning) and to pass optional parameters to the
kernel.
Kernel Startup
When the kernel is loaded, it initializes the devices (via their drivers), starts the swapper (it is a "kernel process", called kswapd in
modern Linux kernels), and mounts the root file system (/).
Some of the parameters that may be passed to the kernel relate to these activities (e.g: You can override the default root file system).
For further information on Linux kernel parameters read bootparam(7).
Only then the kernel creates the first (user land) process which is numbered 1. This process executes the program /sbin/init, passing any
parameters that weren't handled by the kernel already.
init and inittab
When init starts it reads /etc/inittab for further instructions. This file defines what should be run in different run-levels.
This gives the system administrator an easy management scheme, where each run-level is associated with a set of services (e.g: S is sin-
gle-user, on 2 most network services start, etc.). The administrator may change the current run-level via init(8) and query the current
run-level via runlevel(8).
However, since it is not convenient to manage individual services by editing this file, inittab only bootstraps a set of scripts that actu-
ally start/stop the individual services.
Boot Scripts
Note: The following description applies to SYSV-R4 based system, which currently covers most commercial Unices (Solaris, HPUX, Irix,
Tru64) as well as the major Linux distributions (RedHat, Debian, Mandrake, Suse, Caldera). Some systems (Slackware Linux, FreeBSD,
OpenBSD) have a somewhat different scheme of boot scripts.
For each managed service (mail, nfs server, cron, etc.) there is a single startup script located in a specific directory (/etc/init.d in
most versions of Linux). Each of these scripts accepts as a single argument the word 'start' -- causing it to start the service, or the
word accept other "convenience" parameters (e.g: 'restart', to stop and then start, 'status' do display the service status). Running the
script without parameters displays the possible arguments.
Sequencing Directories
To make specific scripts start/stop at specific run-levels and in specific order, there are sequencing directories. These are normally in
/etc/rc[0-6S].d. In each of these directories there are links (usually symbolic) to the scripts in the init.d directory.
A primary script (usually /etc/rc) is called from inittab(5) and calls the services scripts via the links in the sequencing directories.
All links with names that begin with 'S' are being called with the argument 'start' (thereby starting the service). All links with names
that begin with 'K' are being called with the argument 'stop' (thereby stopping the service).
To assert order withing the same run-level, the names of the links contains order-numbers. Also, to make the names clearer, they usually
ends with the name of the service they refer to. Example: the link /etc/rc2.d/S80sendmail is starting the sendmail service on runlevel 2.
This is happening after /etc/rc2.d/S12syslog is run but before /etc/rc2.d/S90xfs is run.
To manage the boot order and run-levels, we have to manage these links. However, on many versions of Linux, there are tools to help with
this task (e.g: chkconfig(8)).
Boot Configuration
Usually the daemons started may optionally receive command line options and parameters. To allow system administrators to change these
parameters without editing the boot scripts themselves, configuration files are used. These are located in a specific directory
(/etc/sysconfig on RedHat systems) and are used by the boot scripts.
In older Unices, these files contained the actual command line options for the daemons, but in modern Linux systems (and also in HPUX),
these files just contain shell variables. The boot scripts in /etc/init.d source the configuration files, and then use the variable values.
FILES
/etc/init.d/, /etc/rc[S0-6].d/. /etc/sysconfig/
SEE ALSO
inittab(5), bootparam(7), init(8), runlevel(8), shutdown(8)
2002-06-07 BOOT(7)