SunOS kernel是一个很小的内核,由genunix和unix和很多动态导入的kernel模块组成 。
模块由设备驱动,支持文件系统的二进制文件,流文件,也包括其他类型的为指定的系统任务使用的模块组成 。
组成内核的典型模块位于目录/kernel和/usr/kernel中,同平台相关的模块位于目录/platform/`uname –m`/kernel和/platform/`uname –i`/kernel目录中 。
下面描述各模块子目录的类型:
drv —— 设备驱动
exec —— 可执行文件形式
fs —— 文件系统类型,例如,ufs,nfs和proc
misc —— 各种混杂的模块(虚拟交换)
sched —— 调度类(继承执行调度)
strmod —— 流模块(归纳了用户和设备驱动间的连接)
sys —— 系统调用(定义应用所使用的接口)
/kernel/drv目录包括所有系统启动所用到的设备驱动 。/usr/kernel/drv包括所有其他的设备驱动 。
在启动时或需要的时候,如果应用发出要求,需要的模块被自动导入,当一个模块不再使用,它所使用的内存被另外一个任务需要的时候,它可能被卸载 。
启动进程完成之后,当设备(例如磁带设备)被访问的时候,设备驱动被导入 。这个进程叫做自动配置,因为当需要的时候,一些kernel驱动模块被自动导入
一旦初始化或重新配置启动,系统自检并且检查所有挂载的设备 。
动态kernel安排的优点是使得整个kernel的大小更小,更有效的使用内存,允许简单的改变或调整 。下图显示这个安排:
注意:sparcv9CUP是一类支持64位处理的CPU
/etc/system文件和kernel配置
警告:Solaris OE基于系统(内存,CPU等等)建立内核 。大多数情况下,默认的内核的性能是非常足够处理系统上大多数日常活动 。任何改变都应该极度小心 。
/etc/system文件是改变系统启动时哪一个模块和参数将被内核加载的控制文件 。默认的,这个文件中的所有行都被注释掉了 。
改变内核的行为(或配置)需要编辑/etc/system文件 。改变这个文件允许你改变内核的可加载模块的处理,也可以改变内核参数以调整系统性能 。
ufsboot程序包含了一个默认可加载内核模块的列表,这些模块在系统启动是将被加载 。然而,你能通过改变/etc/system文件越过这个列表,控制哪个模块和参数将被加载 。
这个文件的所有改变将在系统重启后有效 。
/etc/system文件能明确的控制:
系统启动时加载的默认kernel模块的查找路径 。
Root文件系统类型和设备
启动时从系统自动加载的模块中排除在外的模块
在系统启动时而不是首次访问时强制加载的模块 。
新值将覆盖默认kernel参数值 。
注意:命令行长度必须小于等于80个字符,并且注释行以*开始以新的一行结束 。
/etc/system文件被分成五个明显的段落:
moddir:
为默认可加载kernel模块设置查找路径 。你能把多个查找路径列在一起,用空格或冒号分隔 。如果模块没有在第一个目录里被发现,将查找第二个目录,依此类推 。
Root设备和root文件系统配置:
设置root文件系统类型列表,默认是:rootfs:ufs
设置root设备 。默认是boot程序驻留的设备的物理路径名 。物理路径名是和系统平台和配置相关的,举例如下:
rootdev:/sbus@1,f8000000/esp@0,800000/sd@3,0:a
exclude:
kernel初始化期间不允许被加载的可加载kernel模块 。例如:
exclude :sys/shmsys
forceload:
kernel初始化期间,强制加载的kernel模块,例如:
forceload :drv/vx
在用户或应用运行一个动作,当它的服务被初次访问时,默认动作将自动加载一个kernel模块 。
Set:
为修改系统操作而改变内核参数,例如
set maxusers=40
编辑/etc/system文件
推荐阅读
- 968之初体验
- 下过雨第二天鱼好钓吗
- 第三章:路由和网关 Solaris网络管理培训
- g820两年有感
- solaris网络管理基础培训
- 第十一章:磁盘配置和命名 Solaris系统管理培训
- 宿新市徐公店古诗意思 宿新市徐公店古诗意思翻译
- 4 Solaris高级系统管理员指南
- sa239学习笔记
- better什么意思翻译 better什么意思
