2012년 3월 11일 일요일

Kernel configuration in FreeBSD 7.2

Kernel은 모든 시스템에서 가장 중요한 구성 요소이다.
H/W와 S/W의 인터페이스로서 성능
sanjose# sysctl -A > sysctl.out
sanjose# less sysctl.out
kern.ostype: FreeBSD
kern.osrelease: 7.2-RELEASE
kern.osrevision: 199506
kern.version: FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009
root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

kern.maxvnodes: 69676
kern.maxproc: 6164
kern.maxfiles: 12328
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: sanjose.spkorea
kern.hostid: 3662418169
kern.clockrate: { hz = 1000, tick = 1000, profhz = 2000, stathz = 133 }
kern.proc.all: Format:S,proc Length:54528 Dump:0x000300000000000060053bc428e845c4...
kern.proc.proc: Format:N Length:54528 Dump:0x000300000000000060053bc428e845c4...
kern.proc.kstack: Format:N Length:1096 Dump:0xa5860100000000000000000000000000...
kern.proc.proc_td: Format:N Length:54528 Dump:0x000300000000000060053bc428e845c4...
kern.file: Format:S,xfile Length:8788 Dump:0x340000001d0e00000000000000000000...
kern.posix1version: 200112
kern.ngroups: 16
kern.job_control: 1
kern.saved_ids: 0
kern.boottime: { sec = 1248935311, usec = 617365 } Thu Jul 30 15:28:31 2009
kern.domainname:
kern.osreldate: 702000
kern.bootfile: /boot/kernel/kernel
...
sanjose# sysctl kern
kern.ostype: FreeBSD
kern.osrelease: 7.2-RELEASE
kern.osrevision: 199506
kern.version: FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009
root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC

kern.maxvnodes: 69676
kern.maxproc: 6164
kern.maxfiles: 12328
kern.argmax: 262144
kern.securelevel: -1
kern.hostname: sanjose.spkorea
kern.hostid: 3662418169
...
sanjose# sysctl kern.securelevel
kern.securelevel: -1
sanjose# sysctl vfs.usermount
vfs.usermount: 0
sanjose# sysctl vfs.usermount=1
vfs.usermount: 0 -> 1
sanjose# vi /etc/sysctl.conf

# $FreeBSD: src/etc/sysctl.conf,v 1.8.32.1 2009/04/15 03:14:26 kensmith Exp $
#
# This file is read when going to multi-user and its contents piped thru
# ``sysctl'' to adjust kernel values. ``man 5 sysctl.conf'' for details.
#

# Uncomment this to prevent users from seeing information about processes that
# are being run under another UID.
#security.bsd.see_other_uids=0
vfs.usermount=1
~
~
/etc/sysctl.conf: 11 lines, 394 characters.

sanjose# cat /boot/loader.conf
sanjose# cat /boot/defaults/loader.conf <-- default 기본
sanjose# vi /boot/loader.conf

# Linux procfs,sysfs support
linprocfs_load="YES"
linsysfs_load="YES"
/boot/loader.conf: 6 lines, 106 characters.
sanjose# kldstat
Id Refs Address Size Name
1 7 0xc0400000 9fab28 kernel
2 1 0xc0dfb000 6a45c acpi.ko
3 1 0xc4470000 22000 linux.ko
sanjose# kldstat -v
Id Refs Address Size Name
1 7 0xc0400000 9fab28 kernel
Contains modules:
Id Name
335 shmat
334 shmctl
333 shmdt
...
2 1 0xc0dfb000 6a45c acpi.ko
Contains modules:
Id Name
19 cpu/acpi_throttle
18 acpi/acpi_smbat
17 cpu/acpi_perf
3 1 0xc4470000 22000 linux.ko
Contains modules:
Id Name
443 linuxaout
442 linuxelf
sanjose# kldload /boot/kernel/warp_saver.ko
sanjose# kldstat
Id Refs Address Size Name
1 9 0xc0400000 9fab28 kernel
2 1 0xc0dfb000 6a45c acpi.ko
3 1 0xc4470000 22000 linux.ko
4 1 0xc76be000 2000 warp_saver.ko
sanjose# cd /sys <-- kernel source 확인
sanjose# ls
Makefile cddl dev i4b net netipsec nfs4client pccard sun4v
amd64 compat fs ia64 net80211 netipx nfsclient pci sys
arm conf gdb isa netatalk netnatm nfsserver powerpc tools
boot contrib geom kern netgraph netncp nlm rpc ufs
bsm crypto gnu libkern netinet netsmb opencrypto security vm
cam ddb i386 modules netinet6 nfs pc98 sparc64 xdr

sanjose# cp GENERIC fireserver
sanjose# vi fireserver
sanjose# mv fireserver FILESERVER
sanjose# config ./FILESERVER
Kernel build directory is ../compile/./FILESERVER
Don't forget to do ``make cleandepend && make depend''
sanjose# cd ../compile/FILESERVER/
sanjose# make depend && make all install

댓글 없음: