Linux-Development-Sys Digest #455, Volume #8     Wed, 31 Jan 01 04:13:15 EST

Contents:
  Re: can Linux be secure? ([EMAIL PROTECTED])
  Re: Help req in linux app dev ( network mon ) (Kasper Dupont)
  Re: What's wrong with my lilo.conf? (Kasper Dupont)
  Re: can Linux be secure? (Juha Laiho)
  2.4.1 build failure on i686 (David Ronis)
  about volitile declaration... ([EMAIL PROTECTED])
  about timeout member in task_struct ([EMAIL PROTECTED])
  Re: What's wrong with my lilo.conf? (jtnews)
  Re: about volitile declaration... (Kaz Kylheku)
  Re: about volitile declaration... (Tim Roberts)
  Re: 2.4.1 build failure on i686 (Matthias Borchardt)
  Linksys LNE100TX RedHat 7.0 installation disk (jtnews)
  Re: Having trouble compiling tulip.c in RedHat 7 (jtnews)
  Re: What's wrong with my lilo.conf? (Kasper Dupont)
  How to compile with ROGUE WAVE library (InterFan)
  Re: 512M Physical Memory (Stephane Louise)
  Re: can Linux be secure? (Klaus-Georg Adams)
  Re: The value of HZ (Bharath Kumar K)

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

From: [EMAIL PROTECTED]
Subject: Re: can Linux be secure?
Date: Tue, 30 Jan 2001 22:12:24 -0000

On 30 Jan 2001 10:57:02 +0100 Klaus-Georg Adams <[EMAIL PROTECTED]> wrote:

| You might want to take a look at http://www.bastille-linux.org/
| It is basically a hardening script for RedHat Linux.

How much of it applies to the kernel by itself, when one is not
running Redhat nor any pieces of Redhat?  My original question
was only about the kernel itself.  My "solution" to the rest of
it is to deal with those parts on their own, which will include
not installing anything not absolutely needed.

-- 
=================================================================
| Phil Howard - KA9WGN |   Dallas   | http://linuxhomepage.com/ |
| [EMAIL PROTECTED] | Texas, USA | http://phil.ipal.org/     |
=================================================================

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

From: Kasper Dupont <[EMAIL PROTECTED]>
Subject: Re: Help req in linux app dev ( network mon )
Date: Tue, 30 Jan 2001 23:48:40 +0100

This is a multi-part message in MIME format.

==============1CFB3F54FF6
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Kasper Dupont wrote:
> 
[...]
> 
> It would also be a help to know how to use
> pipe() and fork(). I will find an example
> that uses pipe(), fork() and execv(), it
> is not currently available online.
> 
[...]

I was wrong, I have found the example.
It is a small shell that allows the
user to execute two commands in a
pipeline.

-- 
Kasper Dupont

==============1CFB3F54FF6
Content-Type: text/plain; charset=us-ascii; name="pshell.v2.1.c"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="pshell.v2.1.c"

/* ********************************************** *
 * pshell v2.1                                    *
 *                                                *
 * (c) Simeon Sheye '96                           *
 *                                                *
 * ********************************************** */    



/* *************** INCLUSIONS ******************* */

#include <stdio.h>
/* Inclusion of:      fputs(), fgets(), fileno()  */
/*                    NULL                        */

#include <stdlib.h>
/* Inclusion of:      exit()                      */
/*                    EXIT_FAILURE                */

#include <string.h>
/* Inclusion of:      strtok()                    */

#include <errno.h>
/* Inclusion of:      perror()                    */

#include <sys/types.h>
/* Inclusion of:      pid_t, ...                  */
/*                    necessary for fork & wait() */

#include <unistd.h>
/* Inclusion of:      fork(), execvp(), pipe(),   */
/*                    dup2(), close()             */

#include <sys/wait.h>
/* Inclusion of:      wait()                      */


/* ************ CONSTANTS & DEFINITIONS ********* */

#define MAXCOMMAND    4095
#define MAXARGS        255
#define CHILD            0
#define PROMPT        "PS>"
#define LOOP          while(1)

/* ****************** PROTOTYPES **************** */

void   prompt_for_line(char *);
char **parse_commandline(char *, char **, char **);
void   execute_line(char **, char **, char **);
void   execute_simple(char **);
void   execute_pipe(char  **, char **);

/* ******************* PROGRAM ****************** */

/* ********************************************** *
 * Loop forever:                                  *
 *      read commands and execute them            *
 *                                                *
 *      This shell is limited to single commands  *
 *      and simple pipelines (one pipe).          *
 *      A trailing ampersand runs commandline as  *
 *      background job.                           *
 *      Arguments are separated by blanks or tabs *
 * ********************************************** */

void main(void)
{
  char  commandline[MAXCOMMAND];
  char *argv1[MAXARGS];
  char *argv2[MAXARGS];
  char **lastArg;

  LOOP {
    prompt_for_line(commandline);
    lastArg = parse_commandline(commandline, argv1, argv2);
    execute_line(argv1, argv2, lastArg);
  }
}


/* Prompt for next commandline.
 */

void prompt_for_line(char *s)
{
  fputs(PROMPT, stderr);
  fgets(s, MAXCOMMAND, stdin);
}


/* Split commandline into tokens separated by blanks, tabs and newlines.
 * Tokens before '|' are put into argv1, tokens after, are put into argv2.
 * A pointer to the last not-NULL argument parsed is returned.
 */

char **parse_commandline(char *commandline, char *argv1[], char *argv2[])
{
  int i;
  char **lastArg=NULL;

  /* Initialize strtok with commandline.
   */

  i=0;
  argv1[i] = strtok(commandline, " \t\n");

  /* Build up argv1 until no more agrs, or '|' is encountered
   */

  while((argv1[i] != NULL) && (strcmp(argv1[i], "|") != 0)) {
    lastArg  = &argv1[i];
    i++;
    argv1[i] = strtok(NULL, " \t\n");
  }
  
  /* If '|' was encountered, argv1[i] != NULL, and we build up argv2.
   */

  if(argv1[i] != NULL) {
    argv1[i] = NULL;

    /* Build up argv2 */

    i=0;
    argv2[i] = strtok(NULL, " \t\n");
    while(argv2[i] != NULL) {
      lastArg  = &argv2[i];
      i++;
      argv2[i] = strtok(NULL, " \t\n");
    }
  }
  else {
    argv2[0] = NULL;
  }
  return lastArg;
}

/* Execute commandline (simple or pipe in foreground or background)
 */

void execute_line(char *argv1[], char *argv2[], char **lastArg)
{
  pid_t pid;

  if((lastArg != NULL) && (strcmp(*lastArg, "&")) == 0) {

    /* Background process: Clear lastArg and fork */

    *lastArg  = NULL;
    pid       = fork();
    
    if(pid == CHILD) {

      /* Single command or pipeline? */
    
      if(argv2[0] == NULL)
        execute_simple(argv1);
      else
        execute_pipe(argv1, argv2);

      /* Kill child */

      exit(EXIT_SUCCESS);
    }
  }
  else {

    /* Foreground process: Single command or pipeline? */
    
    if(argv2[0] == NULL)
      execute_simple(argv1);
    else
      execute_pipe(argv1, argv2);
  }
  return;
}

/* Execute single command
 */

void execute_simple(char *argv[])
{
  int    status;
  pid_t  pid;

  if(argv[0] != NULL) {

    pid = fork();
    
    if(pid == CHILD) {
      
      /* Overlay core image and execute.   
       * if execvp() returns, an error has occurred
       */
      
      execvp(argv[0], argv); 
      perror("");
      exit(EXIT_FAILURE);
    }
    else if(pid > CHILD) {
      
      /* Wait for child with process id 'pid' to terminate .
       * Status is ignored (dummy variable).
       */
      
      while(wait(&status) != pid);
    }
    else if(pid < CHILD) {
      
      /* fork() did not execute properly */
      
      fputs("Error during fork()\n", stderr);
    }
  }
}

/* Execute pipe (command1 '|' command2)
 * Errors during pipe() and fork() are ignored.
 * Errors during pipe() are fatal.
 */

void execute_pipe(char  *argv1[], char *argv2[])
{
  int    status;
  pid_t  pid1, pid2;
  int    fd[2];         /* File descriptors for pipe */

  if((argv1[0] != NULL) && (argv2[0] != NULL)) {

    pipe(fd);
  
    pid1 = fork();
    if(pid1 == CHILD) {
      
      /* Set standard output to pipe-input
       */
      
      dup2(fd[1], fileno(stdout));
      
      /* Overlay core image and execute first command.   
       * if execvp() returns, an error has occurred
       */
      
      execvp(argv1[0], argv1); 
      perror("");
      exit(EXIT_FAILURE);
    }
    else if(pid1 > CHILD) {
      
      /* Close pipe-input in father process */
      
      close(fd[1]);
      
      /* Start next process in pipe */
      
      pid2 = fork();
      if(pid2 == CHILD) {
        
        /* Set standard input to pipe-output.
         */
        
        dup2(fd[0], fileno(stdin));
        
        /* Overlay core image and execute second command.   
         * if execvp() returns, an error has occurred.
         */
        
        execvp(argv2[0], argv2); 
        perror("");
        exit(EXIT_FAILURE);
      }
      else if(pid2 > CHILD) {
        
        /* Close pipe-input in father process */
        
        close(fd[0]);
        
        /* Wait for termination of second command. */
        
        wait(&status);
      }
      
      /* Wait for termination of first command. */
      
      wait(&status);
    }
  }
}

==============1CFB3F54FF6==


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

From: Kasper Dupont <[EMAIL PROTECTED]>
Subject: Re: What's wrong with my lilo.conf?
Date: Tue, 30 Jan 2001 23:55:31 +0100

jtnews wrote:
> 
> I don't know what the "Fatal" error
> message means.  What's wrong with
> my lilo.conf?
> 
> # cat /mnt/floppy/etc/lilo.conf
> 
> boot=/dev/fd0
> root=/dev/hda1
> timeout=100
> message=/boot/message
> prompt
> 
> image=/vmlinuz-2.2.16-22
>         label=linux
> 
> # lilo -r /mnt/floppy
> Fatal: Not a number: "/dev/hda1"

Probably /mnt/floppy/dev/hda1 is missing.
Try: "cp -a /dev/hda1 /mnt/floppy"
or "mknod /mnt/floppy/dev/hda1 b 3 1"

-- 
Kasper Dupont

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

From: Juha Laiho <[EMAIL PROTECTED]>
Subject: Re: can Linux be secure?
Date: 30 Jan 2001 18:50:02 GMT

Things that might be worth a look:
- NSA has built some kind of secured Linux system
- Trustix Secure Linux distribution looks rather nice

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

From: David Ronis <[EMAIL PROTECTED]>
Subject: 2.4.1 build failure on i686
Date: Wed, 31 Jan 2001 00:57:17 GMT

I'm trying to build 2.4.1 on an i686 (I built and am running 2.4.0)
using gcc-2.95.2, glibc-2.2.1 and GNU ld version 2.10.91 (with BFD 010122).

Make bzImage fails almost at the very end:

make[1]: Entering directory `/usr/src/linux/arch/i386/boot'
gcc -E -D__KERNEL__ -I/usr/src/linux/include -D__BIG_KERNEL__ -traditional 
-DSVGA_MODE=NORMAL_VGA  bootsect.S -o bbootsect.s
as -o bbootsect.o bbootsect.s
bbootsect.s: Assembler messages:
bbootsect.s:253: Warning: indirect lcall without `*'
ld -m elf_i386 -Ttext 0x0 -s -oformat binary bbootsect.o -o bbootsect
ld: cannot open binary: No such file or directory
make[1]: *** [bbootsect] Error 1
make[1]: Leaving directory `/usr/src/linux/arch/i386/boot'
make: *** [bzImage] Error 2

Any idea what's wrong?  

David

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

From: [EMAIL PROTECTED]
Subject: about volitile declaration...
Date: Wed, 31 Jan 2001 01:56:32 GMT

hi..
What are the technical differences between "volitile" and normal
declaration in C language?
Maybe it is the point about cache mechanism.
I want to know in details...
Thanks in advance..


Sent via Deja.com
http://www.deja.com/

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

From: [EMAIL PROTECTED]
Subject: about timeout member in task_struct
Date: Wed, 31 Jan 2001 02:56:00 GMT

hi..
I compiled jit.c source in the Linux Device Driver book.
However, compile error happened.
maybe it is because of linux version.
My linux kernel version is 2.2.14.
I found the kernel source and knew the no timeout member in task_struct.

The errored code is following.

current->timeout = j;              <---- timeout member isn't.
interruptible_sleep_on(&wait);

How can I use the alternatives.


Sent via Deja.com
http://www.deja.com/

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

Date: Tue, 30 Jan 2001 23:26:29 -0500
From: jtnews <[EMAIL PROTECTED]>
Subject: Re: What's wrong with my lilo.conf?

Yes /dev/hda1 was missing.
I don't understand why lilo
needs /dev/hda1 to exist
in order to tell the kernel 
that /dev/hda1 is the root device.

For example, as a workaround, I used
rdev to set the root device as /dev/hda1
in the kernel image.

Kasper Dupont wrote:
> 
> jtnews wrote:
> >
> > I don't know what the "Fatal" error
> > message means.  What's wrong with
> > my lilo.conf?
> >
> > # cat /mnt/floppy/etc/lilo.conf
> >
> > boot=/dev/fd0
> > root=/dev/hda1
> > timeout=100
> > message=/boot/message
> > prompt
> >
> > image=/vmlinuz-2.2.16-22
> >         label=linux
> >
> > # lilo -r /mnt/floppy
> > Fatal: Not a number: "/dev/hda1"
> 
> Probably /mnt/floppy/dev/hda1 is missing.
> Try: "cp -a /dev/hda1 /mnt/floppy"
> or "mknod /mnt/floppy/dev/hda1 b 3 1"
> 
> --
> Kasper Dupont

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

From: [EMAIL PROTECTED] (Kaz Kylheku)
Subject: Re: about volitile declaration...
Reply-To: [EMAIL PROTECTED]
Date: Wed, 31 Jan 2001 06:23:23 GMT

On Wed, 31 Jan 2001 01:56:32 GMT, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
>hi..
>What are the technical differences between "volitile" and normal
>declaration in C language?

The difference is compiler dependent. There are certain constraint
checks that the compiler must perform if the volatile type is involved.
For instance, when converting one pointer type to another, you cannot
remove volatile from the referent type without a cast.

An earnest implementation of volatile causes each abstract reference to
be translated to an actual access, and causes each store to a volatile
abstract object to be converted to an actual store to that object (you
can have one such store store per sequence point per object, according
to the language rules). Thus if a is a volatile object, for instance,
and you write the expression

    a = a + a + a;

then a compiler which honors volatile to the greatest extent possible
should generate machine code that performs three loads from the memory
location corresponding to a, followed by one store to that location.
Without the volatile qualifier, the compiler might generate only one
load and one store. Or perhaps it might realize something like that the
value of a is never used after this expression, and so not evaluate
it at all.

>Maybe it is the point about cache mechanism.

Not with the processor or system cache; it has to do with defeating the
caching optimizations performed by the compiler---that is to say,
optimizations which cause the locations of abstract objects to be
assigned to high speed storage within the processor (registers) rather
than to the actual backing storage locations. Compilers can sometimes
even optimize variables out of existence entirely.

Volatile is needed by standard C programs in two areas of the language.
If you are returning to a function using longjmp(), then any automatic
variables of that function which were modified since the return context
was recorded with setjmp(), and whose values are to be accessed after
returning via longjmp(), must be declared volatile. The second use is
in signal handling functions, which are allowed to modify a static
object of type volatile sig_atomic_t. If you do not use volatile in
either of these two situations, the behavior is undefined.

Other than these standard C uses, the next big use for volatile is for
accessing memory mapped hardware registers. Clearly, accesses to such
special locations has an effect upon the hardware and thus must not be
reordered or elided.

In the Linux kernel, volatile is applied to some objects that may be
modified by interrupts, a notable example being the jiffies counter
which counts clock ticks. If a kernel routine were to cache the value
of the jiffies counter, the risk is that the value could become stale.

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

From: Tim Roberts <[EMAIL PROTECTED]>
Subject: Re: about volitile declaration...
Date: Tue, 30 Jan 2001 22:58:19 -0800

[EMAIL PROTECTED] wrote:
>..
>What are the technical differences between "volitile" and normal
>declaration in C language?
>Maybe it is the point about cache mechanism.

The 'volatile' declaration basically means 'the contents of this variable
might change without our knowledge.'  Without 'volatile', the compiler is
may assume that the value will not change unless the compiled code changes
it.

This is critical, for example, when dealing with memory mapped hardware.
Consider this:

  void WaitForIdle( MyRegisters* reg )
  {
     unsigned long * statusRegister = &reg->status;
     while( *statusRegister != 0 )
       ;
  }

Without volatile, the compiler will only fetch the contents of the register
once, then loop forever.  But:

  void WaitForIdle( MyRegisters* reg )
  {
     unsigned long volatile * statusRegister = &reg->status;
     while( *statusRegister != 0 )
       ;
  }

With volatile, the compiler cannot assume anything.  It must generate code
that actually fetches the contents of *statusRegister each and every time
through the loop.
--
- Tim Roberts, [EMAIL PROTECTED]
  Providenza & Boekelheide, Inc.

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

From: Matthias Borchardt <[EMAIL PROTECTED]>
Subject: Re: 2.4.1 build failure on i686
Date: Wed, 31 Jan 2001 08:14:47 +0100

David Ronis wrote:

> I'm trying to build 2.4.1 on an i686 (I built and am running 2.4.0)
> using gcc-2.95.2, glibc-2.2.1 and GNU ld version 2.10.91 (with BFD 010122).
> 
> Make bzImage fails almost at the very end:
> 
> make[1]: Entering directory `/usr/src/linux/arch/i386/boot'
> gcc -E -D__KERNEL__ -I/usr/src/linux/include -D__BIG_KERNEL__ -traditional 
>-DSVGA_MODE=NORMAL_VGA  bootsect.S -o bbootsect.s
> as -o bbootsect.o bbootsect.s
> bbootsect.s: Assembler messages:
> bbootsect.s:253: Warning: indirect lcall without `*'
> ld -m elf_i386 -Ttext 0x0 -s -oformat binary bbootsect.o -o bbootsect
> ld: cannot open binary: No such file or directory
> make[1]: *** [bbootsect] Error 1
> make[1]: Leaving directory `/usr/src/linux/arch/i386/boot'
> make: *** [bzImage] Error 2
> 
> Any idea what's wrong?  
> 
> David

For newer binutils you have to use "--oformat binary" instead of
"-oformat binary".

Matthias


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

Date: Wed, 31 Jan 2001 03:11:01 -0500
From: jtnews <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.networking
Subject: Linksys LNE100TX RedHat 7.0 installation disk

Currently, the RedHat 7.0 installation
disk image does not work with
the Linksys 10/100 Ethernet card
(LNE100TX Version 4.1).

However, I finally got around to making
a bootnet.img that works with the card.
You can now use it if you want.

The binary can be downloaded from the
following page:

http://geocities.com/jtnews_bellatlantic_net/linux.html

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

Date: Wed, 31 Jan 2001 03:18:17 -0500
From: jtnews <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.networking
Subject: Re: Having trouble compiling tulip.c in RedHat 7

I've solved the problem and came
up with a bootnet.img RedHat 7.0
installation disk that works
with the Linksys 10/100 Ethernet card
(LNE100TX, Version 4.1)

You can download it from:

http://geocities.com/jtnews_bellatlantic_net/linux.html


jtnews wrote:
> 
> I'm trying to integrate the latest
> kern_compat.h pci-scan.c, and
> tulip.c from ftp://ftp.scyld.com/pub/network
> into RedHat 7 Linux kernel
> 2.2.16-22 and I'm getting the following
> errors:
> 
> Anyone familiar with the cause of these
> link errors?
> 
> tulip.o(.text+0x47): undefined reference to
> `pci_write_config_dword_Rf0fbd200'
> tulip.o(.text+0x72): undefined reference to `printk_R1b7d4074'
> tulip.o(.text+0x8b): undefined reference to `init_etherdev_R3808c591'
> tulip.o(.text+0x9b): undefined reference to `kmalloc_R93d4cfe6'
> tulip.o(.text+0xf8): undefined reference to
> `pci_read_config_byte_Re5ceea13'
> tulip.o(.text+0x131): undefined reference to `printk_R1b7d4074'
> tulip.o(.text+0x19c): undefined reference to `printk_R1b7d4074'
> tulip.o(.text+0x42a): undefined reference to `printk_R1b7d4074'
> tulip.o(.text+0x4a0): undefined reference to `printk_R1b7d4074'
> tulip.o(.text+0x4bb): undefined reference to `printk_R1b7d4074'

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

From: Kasper Dupont <[EMAIL PROTECTED]>
Subject: Re: What's wrong with my lilo.conf?
Date: Wed, 31 Jan 2001 09:30:12 +0100

jtnews wrote:
> 
> Yes /dev/hda1 was missing.
> I don't understand why lilo
> needs /dev/hda1 to exist
> in order to tell the kernel
> that /dev/hda1 is the root device.
> 
> For example, as a workaround, I used
> rdev to set the root device as /dev/hda1
> in the kernel image.
> 
[...]

At some point the string /dev/hda1
must be translated into a device
major and minor number.

When you write root=/dev/hda1 in a
lilo.conf lilo will look for that
blockspecial file and read the
device number from there.

You could probably write root=0301
in which case there does not need
to be a translation.

Another possibility is to pass the
root as an argument to the kernel:
append="root=/dev/hda1", in that
case the kernel will do the
translation at boot time. Since no
filesystem is available at that
point the translation uses a table
found in the kernel source.

I don't know how rdev does the
translation, but I believe it does
the same as lilo but in this case
there has not been a chroot to
/mnt/floppy first.

-- 
Kasper Dupont

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

From: [EMAIL PROTECTED] (InterFan)
Subject: How to compile with ROGUE WAVE library
Date: Wed, 31 Jan 2001 08:43:55 GMT
Reply-To: [EMAIL PROTECTED]

I compile my program with ROGUE WAVE library:
g++  -I/home/qdcnaka/roguewave/workspaces/SOLARIS25/SUNPRO42/12s
-I/home/qdcnaka/roguewave/workspaces/SOLARIS25/SUNPRO42/12s/include
 -g   -DRWDEBUG=1 -DRW_THR_DEBUG -g -DRW_MULTI_THREAD -D_REENTRANT
-o test  test.cc  /home/qdcnaka/roguewave/workspaces/SOLARIS25
/SUNPRO42/12s/lib/libthr12s.a
/home/qdcnaka/roguewave/workspaces/SOLARIS25/SUNPRO42/12s/lib/libtls12s.a
-L/home/qdcnaka/roguewave/workspaces/SOLARIS25/SUNPRO42/12s/lib
-lstd12s -lintl -lnsl

But error occur:
Undefined                       first referenced
 symbol                             in file
__pl__FRC9RWCStringPCc              /var/tmp/ccWBqhjo.o
_._9RWCString                       /var/tmp/ccWBqhjo.o
__9RWCStringPCc                     /var/tmp/ccWBqhjo.o
__as__9RWCStringRC9RWCString        /var/tmp/ccWBqhjo.o

why? can someone give me a example of "makefile"?


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

From: Stephane Louise <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.powerpc
Subject: Re: 512M Physical Memory
Date: Wed, 31 Jan 2001 09:09:21 +0100

Kasper Dupont wrote:
> 
> Steven Wu wrote:
> >
> > Hi,
> >
> > I need a pointer to point out where in the kernel src code which makes
> > the linux sees only 512M physical memory.
> >
> > thanks.
> > steve
> 
> On i386 you can add a mem=xxxM option to
> the kernel if autodetection does not
> work, or you just want to use less than
> you actually have.

AFAIK, this won't work on PPC, resulting in kernel panic
most of the time.
I guess that what is needed is a recent kernel with large
memory support compiled in (not sure that this option is available
for 2.2.x kernels, BTW).
You should search in linuxppc mailing lists archives. See :
http://lists.linuxppc.org/

shinseiki akemashite omedet�
-- 
luigi
mailto:[EMAIL PROTECTED]

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

From: Klaus-Georg Adams <[EMAIL PROTECTED]>
Subject: Re: can Linux be secure?
Date: 31 Jan 2001 09:55:28 +0100

[EMAIL PROTECTED] writes:

> On 30 Jan 2001 10:57:02 +0100 Klaus-Georg Adams <[EMAIL PROTECTED]> wrote:
> 
> | You might want to take a look at http://www.bastille-linux.org/
> | It is basically a hardening script for RedHat Linux.
> 
> How much of it applies to the kernel by itself, when one is not
> running Redhat nor any pieces of Redhat?  My original question
> was only about the kernel itself.  My "solution" to the rest of
> it is to deal with those parts on their own, which will include
> not installing anything not absolutely needed.

Nothing in Bastille-Linux applies to the kernel I'm afraid. But for
the rest it rocks.

--
kga

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

From: Bharath Kumar K <[EMAIL PROTECTED]>
Subject: Re: The value of HZ
Date: Wed, 31 Jan 2001 14:34:16 -0500

The optimal value of HZ is found to be 1024 for alpha and 100 for x86.
Too fast a clock would give a jerky response. Too slow would result in
degradation of perf. Do not try to change the value of HZ ( You have to
rebuild the kernel to bring the new value into effect.) - This has
serious bearing on the working of the kernel. 

If interested in knowing more, grab a copy of "Linux Device drivers" by
Alessandro Rubini.

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


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: [EMAIL PROTECTED]

You can send mail to the entire list by posting to the
comp.os.linux.development.system newsgroup.

Linux may be obtained via one of these FTP sites:
    ftp.funet.fi                                pub/Linux
    tsx-11.mit.edu                              pub/linux
    sunsite.unc.edu                             pub/Linux

End of Linux-Development-System Digest
******************************

Reply via email to