易截截图软件、单文件、免安装、纯绿色、仅160KB

linux 内核构成

      和其他操作系统一样,Linux包含进程调度与进程间通信(IPC)、内存管理(MMU)、虚拟文件系统(VFS)、网络接口等,下图给出了Linux的组成及其关系:
Linux内核源代码包括多个目录:
  (1)arch:包括硬件特定的内核代码,如arm、mips、i386等;
  (2)drivers:包含硬件驱动代码,如char、cdrom、scsi、mtd等;
  (3)include:通用头文件及针对不同平台特定的头文件,如asm-i386、asm-arm等;
  (4)init:内核初始化代码;
  (5)ipc:进程间通信代码;
  (6)kernel:内核核心代码;
  (7)mm:内存管理代码;
  (8)net:与网络协议栈相关的代码,如ipv4、ipv6、ethernet等;
  (9)fs:文件系统相关代码,如nfs、vfat等;
  (10)lib:库文件,与平台无关的strlen、strcpy等,如在string.c中包含:
char * strcpy(char * dest,const char *src)
{
    char *tmp = dest;
  
    while ((*dest++ = *src++) != '')
       /* nothing */;
    return tmp;
}
       (11)Documentation:文档。
   在Linux内核的实现中,有一些数据结构使用非常频繁,对研读内核的人来说至为关键,它们是:
   1.task_struct
    Linux内核利用task_struct数据结构代表一个进程,用task_struct指针形成一个task数组。当建立新进程的时候,Linux为新的进程分配一个task_struct结构,然后将指针保存在task数组中。调度程序维护current指针,它指向当前正在运行的进程。
    2.mm_struct
    每个进程的虚拟内存由mm_struct结构代表。该结构中包含了一组指向vm-area_struct结构的指针,vm-area_struct结构描述了虚拟内存的一个区域。


相关文档:

PHP后台程序对LINUX信号的处理

PHP在运行的时候,直接kill掉,有肯能造成数据的丢失。幸好php模块,有针对signal的处理。
处理方式,首先检查有没有安装 PCNTL 模块
然后可以在一个包含文件中,添加以下代码
global $exitFlag;
$exitFlag = false;
// 增加linux信号量处理
if (DIRECTORY_SEPARATOR != '\\') {
    pcntl_signal(SI ......

linux网络编程笔记

一 三种类型的套接字:
1.流式套接字(SOCKET_STREAM)
    提供面向连接的可靠的数据传输服务。数据被看作是字节流,无长度限制。例如FTP协议就采用这种。
2.数据报式套接字(SOCKET_DGRAM)
    提供无连接的数据传输服务,不保证可靠性。
3.原始式套接字(SOCKET_RAW)
   ......

Linux设备模型

看LDD3中设备模型一章,觉得思维有些混乱。这里从整体的角度来理理思路。
本文从四个方面来总结一些内容:
1.底层数据结构:kobject,kset.
2.linux设备模型层次关系:bus_type,device,device_driver.
3.集成:PCI设备驱动模型实例及设备,设备驱动注册源码的简单分析.
4.面向对象的思想在linux设备模型中的应用分析.
......

【数据结构重温】Linux内核中的hash和bucket

 哈希表(Hashtable)又称为“散置”,Hashtable是会根据索引键的哈希程序代码组织成的索引键(Key)和值(Value)配对的集合。Hashtable 对象是由包含集合中元素的哈希桶(Bucket)所组成的。而Bucket是Hashtable内元素的虚拟子群组,可以让大部分集合中的搜寻和获取工作更容易、更快速。
 
哈希函 ......

linux 基础复习(9)设备驱动入门转


Linux 内核中采用可加载的模块化设计(LKMs,Loadable Kernel
Modules),一般情况下编译的Linux
内核是支持可插入式模块的,也就是将最基本的核心代码编译在内核中,其他的代码可以选择在内核中,或者编译为内核的模块文件。常见的驱动程序也是作为内核
模块动态加载的。
模块相关命令
lsmod 列出当前系统加载的 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号