FreeBSD newbie, Kernel compile and Binary compat.

FreeBSD newbie, Kernel compile and Binary compat.

Post by Raymond Doetje » Mon, 22 Nov 1999 04:00:00



Hi there, i;m since thursday running FreeBSD besides my Linux. (They are
both gr& OS-es, I'm not going to play advocacy for either one of them).

However I have 2 small questions:

1 - How come when I compile a new kernel and I use the GENERIC conf file
and I throw out all of the hardware that I don't have nor need and
I only enable SMP (I run on SMP) that my kernel is over 8Megs while the
GENERIC kernel is only 2.4M (still very large when you check that agains
Linux kernels) I however made the kernel with the config -g options.
Perhaps the debug message make this binary so big. Or perhaps the
GENERIC kernel has everything in modules (I don't know how to make
modules yet :) and perhaps I have a monolitic kernel. Wich I would'nt
understand since I use the GENERIC config.

2 - Can FreeBSD run the BSD 4.4 binaries? Probably yes but I like to
here that for sure. And how good is the iBCS2 do all SCO apps run on
FreeBSD?

Raymond

 
 
 

FreeBSD newbie, Kernel compile and Binary compat.

Post by Kristian Ra » Mon, 22 Nov 1999 04:00:00


Hi

Hi

a newbie reply from another newbie :)

On Sun, 21 Nov 1999 11:08:01 +0100, Raymond Doetjes


>1 - How come when I compile a new kernel and I use the GENERIC conf file
>and I throw out all of the hardware that I don't have nor need and
>I only enable SMP (I run on SMP) that my kernel is over 8Megs while the
>GENERIC kernel is only 2.4M (still very large when you check that agains
>Linux kernels) I however made the kernel with the config -g options.

The -g is the reason for your kernels size.

Quote:>Perhaps the debug message make this binary so big. Or perhaps the
>GENERIC kernel has everything in modules (I don't know how to make
>modules yet :) and perhaps I have a monolitic kernel. Wich I would'nt
>understand since I use the GENERIC config.

Except for mach derived stuff, all unix'es are monolithic.
A monolithic kernel means that all elements are put together in one
binary, as opposed to the complete opposite "micro kernels" where
things as the memory mannager, the vm system and the scheduler might
be loadable/replaceable options.
The above sentence is genericly true. but being monolithic does not
remove the ability to have loadable drivers and services. Being a
micro kernel doesnt imply that the os is highly configurable or small.
As an example:
- NT is a micro kernel :)
- MkLinux is a micro kernel

There is nothing inherently wrong with a monolithic kernel or a micro
kernel. It's a question of design strategy/philosophy.
There is only a few truths about these strategies that tend to hold
true.

Given the _same_ goal and the _same_ dedication and skill's:
- a monolithic kernel should perform better than a micro kernel
- a micro kernel should be easier to port/expand

regards

Kristian

 
 
 

FreeBSD newbie, Kernel compile and Binary compat.

Post by Fred Broc » Mon, 22 Nov 1999 04:00:00


You could chflag noschg [kernel name] , and then strip [kernel name]. This
will considerably reduce the size.

fb


> Hi

> Hi

> a newbie reply from another newbie :)

> On Sun, 21 Nov 1999 11:08:01 +0100, Raymond Doetjes

> >1 - How come when I compile a new kernel and I use the GENERIC conf file
> >and I throw out all of the hardware that I don't have nor need and
> >I only enable SMP (I run on SMP) that my kernel is over 8Megs while the
> >GENERIC kernel is only 2.4M (still very large when you check that agains
> >Linux kernels) I however made the kernel with the config -g options.

> The -g is the reason for your kernels size.

> >Perhaps the debug message make this binary so big. Or perhaps the
> >GENERIC kernel has everything in modules (I don't know how to make
> >modules yet :) and perhaps I have a monolitic kernel. Wich I would'nt
> >understand since I use the GENERIC config.

> Except for mach derived stuff, all unix'es are monolithic.
> A monolithic kernel means that all elements are put together in one
> binary, as opposed to the complete opposite "micro kernels" where
> things as the memory mannager, the vm system and the scheduler might
> be loadable/replaceable options.
> The above sentence is genericly true. but being monolithic does not
> remove the ability to have loadable drivers and services. Being a
> micro kernel doesnt imply that the os is highly configurable or small.
> As an example:
> - NT is a micro kernel :)
> - MkLinux is a micro kernel

> There is nothing inherently wrong with a monolithic kernel or a micro
> kernel. It's a question of design strategy/philosophy.
> There is only a few truths about these strategies that tend to hold
> true.

> Given the _same_ goal and the _same_ dedication and skill's:
> - a monolithic kernel should perform better than a micro kernel
> - a micro kernel should be easier to port/expand

> regards

> Kristian

 
 
 

FreeBSD newbie, Kernel compile and Binary compat.

Post by Philipp Hube » Mon, 22 Nov 1999 04:00:00


Quote:> 1 - How come when I compile a new kernel and I use the GENERIC conf file
> and I throw out all of the hardware that I don't have nor need and
> I only enable SMP (I run on SMP) that my kernel is over 8Megs while the
> GENERIC kernel is only 2.4M (still very large when you check that agains
> Linux kernels) I however made the kernel with the config -g options.
> Perhaps the debug message make this binary so big. Or perhaps the
> GENERIC kernel has everything in modules (I don't know how to make
> modules yet :) and perhaps I have a monolitic kernel. Wich I would'nt
> understand since I use the GENERIC config.

had the same problem...delete your kernel make directory, disable ktrace
and so on and do a /usr/sbin/config <file>
Philipp
 
 
 

FreeBSD newbie, Kernel compile and Binary compat.

Post by J Wuns » Wed, 24 Nov 1999 04:00:00



> You could chflag noschg [kernel name] , and then strip [kernel
> name]. This will considerably reduce the size.

Not a good idea.  Some tools rather like to see /kernel having a
symbol table, so they know where to poke around in /dev/kmem.

If you look into the Makefile in your kernel compile directory, you'd
notice that the installation without debugging symbols is done by this
command:

        objcopy --strip-debug ${FULLKERNEL} ${KERNEL}

--
cheers, J"org


Never trust an operating system you don't have sources for. ;-)