- 博客(11)
- 资源 (2)
- 收藏
- 关注
转载 Linux可加载内核模块(LKM)
I.基础知识1.什么是LKM 2.什么是系统调用3.什么是内核符号表4.如何进行内核与用户空间内存数据的交换5.使用用户空间的各种函数方法6.常用内核空间函数列表7.什么是内核后台进程8.创建自己的设备II.深入探讨1.如何截获系统调用2.哪些系统调用应被截获2.1 寻找重要的系统调用(strace命令方法)3.迷惑内核系统表4.针对文件系统
2012-12-12 22:21:08 9408 2
转载 Linux内核的同步机制
本系列文章分两部分,第一部分详细地介绍了Linux 内核中的同步机制:原子操作、信号量、读写信号量和自旋锁的API,使用要求以及一些典型示例。第二部分将详细介绍在Linux内核中的另外一些同步机制,包括大内核锁、读写锁、大读者锁、RCU和顺序锁。第1 部分一、 引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同
2012-12-12 22:16:44 1004
转载 iSCSI技术白皮书
一、前言ISCSI(INTERNET SCSI)是由Internet Engineering Task Force(IETF)开发的网络存储标准,目的是为了用IP协议将存储设备连接在一起。通过在IP网上传送SCSI命令和数据,ISCSI推动了数据在网际之间的传递,同时也促进了数据的远距离管理。由于其出色的数据传输能力,ISCSI协议被认为是促进存储区域网(SAN)市场快速发展的关键因素之一。因
2012-12-12 10:29:58 3022
转载 open-iscsi源码分析 -- 会话建立
前面可以看出,处理控制中心还是iscsid守护进程,其他进程都是向它发出服务请求,然后它做出响应,而它完成一些操作又是向底层驱动发出指令。在前面的源码中可以发现,重要是一个mgmt_ipc_functions的函数指针数组是一个操作函数集合,其中的函数分别处理不同的服务,服务id就是它在函数指针数组中的索引。/*不同任务id对应的处理函数地址*/static mgmt_ipc_fn_t
2012-12-11 22:20:15 2394
转载 open-iscsi源码分析 -- list-head分析
list-head结构在linux内核中用得非常多,这是一个双向链表结构,可以灵活嵌入其他数据结构中,对于建立链表非常方便。在Linux内核中,由于很多数据结构都需要连成一个链表进行管理,所以有了list-head将链表的管理独立出来,所以在内核编程不需要自己实现list-head的一些管理函数,可以直接调用。 在open-iscsi用户态编程时,将这个文件从内核中拷贝出来了:
2012-12-11 22:18:13 1031
转载 open-iscsi源码分析 -- 进程通信
前面分析了open-iscsi主要有一个守护进程iscsid,即通过本地socket和用户其他进程通信,比如iscsiadm管理执行任务时,需要和iscsid通信,iscsi的底层驱动则通过netlink和iscsid通信,而用户态其他进程还通过共享内存和iscsid日志守护进程通信。所以在iscsi服务启动后,我们会发现在系统中有两个名为iscsid的进程,其中一个为日志守护进程,另一个
2012-12-11 22:16:42 2494
转载 open-iscsi源码分析 -- 流程详细分析
在iscsid.c文件的main函数中,有:sysfs_init();这个函数主要是获取系统sys目录://获取sys目录int sysfs_init(void){const char *env;/*从环境变量中获取sys路径*/env = getenv("SYSFS_PATH");if (env) {strlcpy(sysfs_path
2012-12-11 22:15:24 2729
转载 open-iscsi源码分析 -- 日志处理
在iscsid主函数中有: log_pid = log_init(program_name, DEFAULT_AREA_SIZE, daemonize ? log_do_log_daemon : log_do_log_std, NULL); 初始化日志系统,现在进入log_init函数,对open-iscsi的日志处理方式进行详细分析: /*
2012-12-11 22:13:37 2013
转载 open-iscsi源码分析 -- iscsid
最近用到open-iscsi作用initiator,遇到很多问题,就打算粗率对open-iscsi的源码进行一个分析。 open-iscsi的组成和用法就不讲了,源码包中的README说得非常清楚,主要分为驱动和用户态两部分,用户态又分为服务守护进程和管理程序,必须先加载驱动,守护进程才能启动成功,最后才是运行iscsiadm进行一些常规管理。 今天首先对open-is
2012-12-11 22:11:52 3549
转载 LINUX SCSI I/O分析
概述LINUX 内核中 SCSI 子系统由 SCSI 上层,中间层和底层驱动模块 [1] 三部分组成,主要负责管理 SCSI 资源和处理其他子系统,如文件系统,提交到 SCSI 子系统中的 IO 请求。因此,理解 SCSI 子系统的 IO 处理机制对理解整个 SCSI 子系统就显的十分重要,同时也有助于理解整个 LINUX 内核的 IO 处理机制。本文从 SCSI 设备访问请求的提交,SCSI
2012-12-11 21:30:35 10708 1
转载 Linux I/O调度
Linux I/O调度一) I/O调度程序的总结 1) 当向设备写入数据块或是从设备读出数据块时,请求都被安置在一个队列中等待完成. 2) 每个块设备都有它自己的队列. 3) I/O调度程序负责维护这些队列的顺序,以更有效地利用介质.I/O调度程序将无序的I/O操作变为有序的I/O操作. 4) 内核必须首先确定队列中一共有多少个请求,然后才开始进
2012-12-11 20:31:44 1010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人