一、        链表数据结构简介      链表是一种常用的组织有序数据的数据结构,它通过指针将一系列数据节点连接成一条数据链,是线性表的一种重要实现方式。相对于数组,链表具有更好的动态性,建立链表时无需预先知道数据总量,可以随机分配空间,可以高效地在链表中的任意位置实时插入或删除数据。链表的开销主要是访问的顺序性和组织链的空间损失。      通常链表数据结构至少应包含两个域:数据域和指针域
转载 2023-05-12 00:04:13
89阅读
【摘要】本文首先介绍非抢占式内核(Non-Preemptive Kernel)和可抢占式内核(Preemptive Kernel)的区别。接着分析Linux下有两种抢占:用户态抢占(User Preemption)、内核态抢占(Kernel Preemption)。然后分析了在内核态下:如何判断能否抢占内核(什么是可抢占的条件);何时触发重新调度(何时设置可抢占条件);抢占发生的时机(何时检查可抢
转载 2023-05-12 00:04:17
96阅读
来源:安全焦点/*Kernel version: linux-2.6.22.9*作者:旋木木*日期:2007/10/17*E-mail:xuanmumu@gmail.com*/Fork的系统调用代码在linux/arch/i386/kernel/process.c中:asmlinkage int sys_fork(struct pt_regs regs){return do_fork(SIGCHL
转载 精选 2007-10-27 22:12:19
1078阅读
(1)导言:首先,我强烈建议大家阅读Richard Stevens著作《TCP/IP Illustracted Volume 1,2,3》和《UNIX Network Programming Volume 1,2》。虽然他离开我们大家已经5年多了,但是他的书依然是进入网络编程的最直接的道路。其中的3卷的《TCP/IP Illustracted》卷1是必读-如果你不了解tcp协议各个选项的详细定义,
转载 2011-03-25 17:18:00
134阅读
9.typedef    内核开发者们强烈反对使用 typedef 语句。他们的理由是:    1> typedef 掩盖了数据的真实类型    2> 由于数据类型隐藏起来
原创 2023-05-12 00:02:50
122阅读
  linux2.6内核成功编译1) 需要的工具:     (1) 模块工具:modutils-2.4.21-23.src.rpm           //负责加载模块,在2.4之前是不需要单独编译    &n
转载 2009-12-27 21:38:47
599阅读
题记    很久之前就分析过这部分内容,但是那个时候不够深入,姑且知道这么个东西存在,到底怎么用,来龙去脉咋回事就不知道了。前段时间工作上遇到了一个initrd的问题,没办法只能再去研究研究,还好,有点眉目,索性整理了一下。    网络上流传着很多关于ramdisk、initrd的各种版本的分析,我的这
转载 2023-01-06 10:45:29
823阅读
1点赞
linux2.6内核成功编译 1) 需要的工具:      (1) 模块工具:modutils-2.4.21-23.src.rpm           //负责加载模块,在2.4之前是不需要单独编译     &
转载 2010-07-08 10:42:40
234阅读
提权步骤:   $ mkdir /tmp/exploit     # Link to an suid binary, thus changing the definition of $ORIGIN.  $ 
原创 2011-01-04 14:10:32
793阅读
 linux2.6内核本地提权 It is possible to exploit this flaw to execute arbitrary code as root. Please note, this is a low impact vulnerability th
转载 精选 2012-01-03 18:39:22
1974阅读
1点赞
Linux2.6内核驱动移植 随着Linux2.6的发布,由于2.6内核做了教的改动,各个设备的驱动程序在不同程度上要进行改写。为了方便各位Linux爱好者我把自己整理 的这分文档share出来。该文当列举了2.6内核同以前版本的绝大多数变化,可惜的是由于时间和精力有限没有详细列出各个函数的用法。 特别声明:该文档中的内容来自http://lwn.n
原创 2008-03-12 15:03:00
457阅读
5.每行代码的长度      源代码中要尽可能的保证每行代码长度不超过80个字符,因为这样做可以使代码最适合在标准的 80 * 24
原创 2023-05-12 00:02:55
67阅读
像所有其他大型软件一样,Linux 制定了一套编码风格,对代码的格式,风格和布局做出了规定。下面我就对 2.6 内核中的代码约定进 里是不是有点奇怪,我们在编程时是不是用 4 个字符缩进就行了?
原创 2023-05-12 00:24:01
104阅读
1、 使用新的入口 必须包含 <linux/init.h> module_init(your_init_func); module_exit(your_exit_func); 老版本:int init_module(void); void cleanup_module(voi); 2.4中两种都可以
原创 2021-08-23 11:18:12
157阅读
Linux2.6是一个开源操作系统内核的版本,作为世界上最流行的自由操作系统之一,Linux2.6内核在其发布时引起了巨大的轰动。其中一个备受关注的特性是红帽(Red Hat)Linux内核2.6中的支持。 红帽公司是一家总部位于美国的开源软件公司,以其Linux发行版而闻名。红帽Linux基于Linux内核,并配备了一系列软件来满足企业级用户的需求。内核2.6的发布为红帽的发展带来了更多的机
原创 2024-03-13 11:08:32
80阅读
一、大型页面的支持 当代计算机体系结构大都支持多种页面大小,例如,IA-32体系结构支持4KB或4MB的页面, Linux操作系统只是将大型页面用于映射实际的内核映像。大型页面的使用主要是为了改进高性能计算(HPC)以及其他内存密集型应用的性能。任何占用大量虚存的访存密集型应用程序都可以使用...
转载 2016-10-26 17:38:00
133阅读
2评论
      由于硬件的限制,内核不能对所有的页一视同仁。有些页位于内存中的特定物理地址上,所以,不能将其用于一些特别的任务。(关于内存分页机制可以查看:​​​​j​​)由于存在这种限制,所以内核会把页划分为不同的区。内核使用区对具有相似特性的页进行分组。Linux必须处理如下两种由于硬件存在缺陷而引起的内存寻址问题:   1.一些硬件只能用某些特定的内存地址来执行 DMA   2.一些体系结构的内
转载 2013-08-22 18:23:00
315阅读
2评论
对于一个计算机专业的学生,链表这种数据结构对我们来说再熟悉不过了,毕竟在大学的《数据结构》中就讲解过,相信你也自己实现过,它 bool
原创 2023-05-12 00:22:44
69阅读
1.什么是 Initrdinitrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader 配置了 initrd
转载 精选 2015-03-26 11:47:07
209阅读
1.什么是 Initrd initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot loader配置了 initrd 的情况下,内核启动被分成了两个阶段,第一阶段先执行 initrd 文件系统中的"某个文件",完成加载驱动模块等任务,第二阶段才会执行真正的根文件系统中的 /sbin/init 进程。这里
转载 2010-02-04 20:52:00
105阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5