内核设计风格:

RedHat, SUSE
核心:动态加载 内核模块
内核:/lib/modules/“内核版本号命令的目录”/
vmlinuz-2.6.32
/lib/modules/2.6.32/

RedHat5: ramdisk-->initrd
RedHat6: ramfs-->initramfs

单内核:Linux (LWP轻量级进程)
        核心:ko(kernel object)
        
        
        
        so()
        
    微内核:Windows, Solaris (线程)

chroot: chroot /PATH/TO/TEMPROOT [COMMAND...]
    chroot /test/virrrot  /bin/bash
    
ldd /PATH/TO/BINARY_FILE:显示二进制文件所依赖的共享库

MBR(bootloader)--> Kernel --> initrd(initramfs) --> (ROOTFS) --> /sbin/init(/etc/inittab)
    /etc/inittab, /etc/init/*.conf
    upstart
    
init /etc/inittab
id:runlevels:action:process

id:5:initdefault:

si::sysinit:/etc/rc.d/rc.sysinit
OS初始化

l0:0:wait:/etc/rc.d/rc 0
    rc0.d/
        K*
            stop
        S*
            start
            
/etc/rc.d/init.d, /etc/init.d

服务类脚本:
    start
    
    SysV: /etc/rc.d/init.d
        start|stop|restart|status
        reload|configtest

chkconfig         
        
# chkconfig: runlevels SS KK              当chkconfig命令来为此脚本在rc#.d目录创建链接时,runlevels表示默认创建为S*开头的链接,-表示没有级别默认为S*开头的链接;除此之外的级别默认创建为K*开头的链接;
    S后面的启动优先级为SS所表示的数字;K后面关闭优先次序为KK所表示的数字;
# description: 用于说明此脚本的简单功能; \, 续行

chkconfig --list: 查看所有独立守护服务的启动设定;独立守护进程!
    chkconfig --list SERVICE_NAME
    
chkconfig --add SERVICE_NAME

chkconfig --del SERVICE_NAME

chkconfig [--level RUNLEVELS] SERVICE_NAME {on|off}
    如果省略级别指定,默认为2345级别;

样例脚本:
#!/bin/bash
#
# chkconfig: 2345 77 22
# description: Test Service
#
LOCKFILE=/var/lock/subsys/myservice

status() {
  if [ -e $LOCKFILE ]; then
    echo "Running..."
  else
    echo "Stopped."
  fi
}

usage() {
  echo "`basename $0` {start|stop|restart|status}"
}

case $1 in
start)
  echo "Starting..."
  touch $LOCKFILE ;;
stop)
  echo "Stopping..."
  rm -f $LOCKFILE &> /dev/null
  ;;
restart)
  echo "Restarting..." ;;
status)
  status ;;
*)
  usage ;;
esac

/etc/rc.d/rc.local:系统最后启动的一个服务,准确说,应该执行的一个脚本;

/etc/inittab的任务:
1、设定默认运行级别;
2、运行系统初始化脚本;
3、运行指定运行级别对应的目录下的脚本;
4、设定Ctrl+Alt+Del组合键的操作;
5、定义UPS电源在电源故障/恢复时执行的操作;
6、启动虚拟终端(2345级别);
7、启动图形终端(5级别);

守护进程的类型:
    独立守护进程
    xinetd:超级守护进程,代理人
        瞬时守护进程:不需要关联至运行级别

核心:/boot/vmlinuz-version
内核模块(ko): /lib/modules/version/

内核设计:
    单内核
        模块化设计
    微内核

装载模块:
    insmod
    modprobe

www.kernel.org:

用户空间访问、监控内核的方式:
/proc, /sys

伪文件系统

/proc/sys: 此目录中的文件很多是可读写的
/sys/: 某些文件可写

设定内核参数值的方法:
echo VALUE > /proc/sys/TO/SOMEFILE
sysctl -w kernel.hostname=
    
能立即生效,但无法永久有效;

永久有效:/etc/sysctl.conf

修改文件完成之后,执行如下命令可立即生效:
sysctl -p    
sysctl -a: 显示所有内核参数及其值

内核模块管理:
lsmod: 查看

modprobe MOD_NAME:装载某模块
modprobe -r MOD_NAME: 卸载某模块

modinfo MOD_NAME: 查看模块的具体信息

insmod /PATH/TO/MODULE_FILE: 装载模块    
rmmod MOD_NAME

depmod /PATH/TO/MODILES_DIR

Linux系统启动流程(2)的更多相关文章

  1. linux基础-附件1 linux系统启动流程

    附件1 linux系统启动流程 最初始阶段当我们打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序.这一程序通常知道一些直接连接在主 ...

  2. Linux系统启动流程及安装命令行版本

    Debian安装 之前也安装过很多次linux不同版本的系统,但安装后都是直接带有桌面开发环境的版本,直接可以使用,正好最近项目不是很忙,想一直了解下Linux的整个启动流程,以及如何从命令行模式系统 ...

  3. 【转载】Linux系统启动流程

    原文:Linux系统启动流程 POST(Power On Self Test/上电自检)-->BootLoader(MBR)-->Kernel(硬件探测.加载驱动.挂载根文件系统./sbi ...

  4. Linux系统启动流程及grub重建(1)

    日志系统 Linux系统启动流程 PC: OS(Linux) POST-->BIOS(Boot Sequence)-->MBR(bootloader,446)-->Kernel--& ...

  5. Linux 入门记录:十八、Linux 系统启动流程 + 单用户修改 root 密码 + GRUB 加密

    一.系统启动流程 一般来说,Linux 系统的启动流程是这样的: 1. 开机之后,位于计算机主板 ROM 芯片上的 BIOS 被最先读取,在进行硬件和内存的校验以及 CPU 的自检没有异常后, BIO ...

  6. Linux系统启动流程(重要!)

    Linux系统启动流程   从上至下为: BIOS  MBR:Boot Code 执行引导程序-GRUB(操作系统) 加载内核 执行init run level 1.BIOS(Basic Input ...

  7. Linux系统启动流程分析

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

  8. linux 系统启动流程

    原著资料网址:http://wenku.baidu.com/view/414127fdf705cc1755270997.html (版权归原作者所有) Linux系统的启动分5个阶段,每个阶段都完成不 ...

  9. [ 总结 ] Linux系统启动流程

    Linux系统启动过程分析: 按下电源 --> BIOS自检 --> 系统引导(lilo/grub) --> 启动内核 --> 初始化系统 --> 用户登录 1. BIO ...

  10. Linux系统启动流程与系统目录

    启动流程 # 1,开机BIOS自检 检查一系列的硬件,最后根据启动顺序启动,是硬盘还是光驱等 # 2,MBR引导 读硬盘0柱面0磁道1扇区的前446字节 1扇区=512字节 MBR=4446字节 四个 ...

随机推荐

  1. 用java流方式判断文件类型

    这个方法只能在有限的范围内有效.并不是万金油 比如 图片类型判断,音频文件格式判断,视频文件格式判断等这种肯定是2进制且专业性很强的文件类型判断. 下面给出完整版代码 首先是文件类型枚取 packag ...

  2. curl 学习

    <?php // $username =13800138000; // $password =123456; // $sendto =13912345678; // $message = &qu ...

  3. Html5 Canvas 实现滚动的图片

    今天一直在找html5 canvas的使用实例.想画一张地图,再画个小车在上面跑.运气好找到了一个大神写的js代码.该代码实现了图片的左右来回滚动,现在粘贴在博客里记录一下: <html> ...

  4. (转)iOS7界面设计规范(2) - UI基础 - iOS应用解析

    今天再来一发,然后结束掉周六的忙碌,去吃零食,还有冰啤酒:其实现在打嗝还有小龙虾味儿呢. 第二篇更多的是从技术的角度对iOS界面组成原理进行了简单的解析,篇幅很短,可稍作了解:更多关于iOS开发入门的 ...

  5. Caused by: java.lang.ClassNotFoundException: javassist.ClassPool

    1.错误原因 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  6. .NET基础拾遗(3)字符串、集合和流1

    一.字符串处理 1.1 StringBuilder类型 众所周知,在.NET中String是引用类型,具有不可变性,当一个String对象被修改.插入.连接.截断时,新的String对象就将被分配,这 ...

  7. (转)第一天 XHTML CSS基础知识 文章出处:标准之路(http://www.aa25.cn/div_css/902.shtml)

    欢迎大家学习<十天学会web标准>,也就是我们常说的DIV+CSS.不过这里的DIV+CSS是一种错误的叫法,建议大家还是称之为web标准. 学习本系列教程需有一定html和css基础,也 ...

  8. java基础2

    //第一个程序 用super访问父类中被隐藏的成员变量和被重写的方法 package foxe; class superClass{ int x; superClass(){ x=4; System. ...

  9. silverlight visifire控件图表制作——silverlight 后台方法ControlChart.xaml.cs

    一.构造方法ControlChart 1.前台页面控件赋值 //时间下拉框赋值,下拉框赋选定值                for (int ii = DateTime.Today.Year; ii ...

  10. Js得到radiobuttonlist选中值,设置默认值

    JS 代码 var vRbtid=document.getElementById("rbtid");      //得到所有radio      var vRbtidList= v ...