logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux内核——cli()和sti()

看linux 1.2.13看到这个了,  转:http://blog.163.com/njut_wangjian/blog/static/165796425201242010718848/  cli()和sti()有点类似于汇编指令中的CLI和STL,当某个任务在执行的过程中不想被中断,则可以在任务的开始出执行cli(),在任务的结束处执行sti()

Linux内核笔记9

Linux散列链表散列链表从形式上看,就像是由多个链表的头部所构成的一个数组,每个链表都对应该数组中的某个元素,用以解决键值冲突的问题。末节点的next指向NULL;node1的pprev指向first这个图不知道理解的对不对,请各位指教!1、散列链表的定义struct hlist_head {struct hlist_node *first;};struc

#list#linux
linux内核第三记

Linux内核配置Linux内核具有可定制的优点,具体步骤如下:1.清理临时文件,中间文件和配置文件·make clean:删除大部分产生文件(如编译中的.o文件)但是把配置保留下来。·make mrproper:删除所有产生文件并把配置文件也删除了。·make distclean:在make mrproper的基础上,还要删除编辑器文件和补丁文件。2.确定目标系统

#网络协议#qt
Linux内核第五记

Linux内存管理1.地址类别:·物理地址:指的是出现在CPU地址总线上的寻址理内存的地址信号,是地址变换的最终结果。·逻辑地址:程序代码经过编译后在汇编程序中使用的地址。·线性地址(虚拟地址):在32位CPU架构下,可以表示4G的地址空间,16进制表示就是从0x00000000~0xFFFFFFFF。2.地址转换:                   段式管理

#linux
linux内核第四记

linux内核编译1.编译内核:·make zImage·make bzImage区别:在X86平台,zImage只能用于小于512k的内核。·sudo make zbImage:如果想获得详细的编译信息便于查找错误:·make zImage V=1·make zbImage V=1·make zbImage V=1:编译好的内核位于arch//

#ubuntu#x86
Linux内核第七记

Linux内核地址空间1.内核空间是由内核负责映射,它不会随着进程改变,是固定的。因为此时是在内核态的, 而所有进程的页面目录中与内核空间相对应的目录项都指向相同的页面表, 所以不管换上哪一个进程的页面目录都是一样的. 在内核空间的映射始终不会变. 高端内存:物理内存896M以上的部分称之为高端内存。2.内核空间分布2.1直接映射区从3G开始,最大896M的线性地址空间

linux内核第一记

1.linux体系结构从上图可知,Linux分为:用户空间和内核空间。内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。2.linux内核架构2.1系统调用接口(SCI)SCI层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核的桥梁。2.2进程管理(PM)进程管

#网络协议#linux#活动 +1
linux内核第二记

目录结构(一般修改Arch和Drivers目录中的文件)1.block目录部分块设备驱动程序2.crypto目录加密、压缩、CRC校验算法3.documentation内核的文档4.drivers目录设备驱动程序5.fs目录存放各种文件系统的实现代码。每个子目录对应一中文件系统的实现,公用的源程序用于实现虚拟文件系统VFS6.in

#虚拟机#linux
linux内核第六记

Linux进程地址空间1.虚拟内存Linux操作系统采用虚拟内存管理技术,使得每个进程都拥有独立的进程地址空间,该地址空间为3G,用户看到和接触的都是虚拟地址,无法看到实际的物理地址。利用这种虚拟地址不但能起保护操作系统的作用,更重要的是用户程序可以使用比实际物理内存更大的地址空间。Linux将4G的虚拟地址空间划分为两个部分:用户空间和内核空间。用户空间从0x00000000~0xb

#linux
Linux内核第八记

在Linux内核中使用了大量的链表结构来组织数据结构。这些链表大多数采用了[include/linux/list.h]中实现的一套精彩的链表数据结构。预备知识:#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)其中(TYPE *)0表示将常量0强制转化为TYPE*类型指针所指向的地址,&((TYPE *)0)

#list#数据结构#linux
    共 14 条
  • 1
  • 2
  • 请选择