
内核技术
文章平均质量分 66
功名半纸
功名未半纸 风雪已千山
展开
-
netconsole 重定向kernel日志到远程服务器
netconsole 重定向kernel日志到远程服务器linux netconsole 内核模块可以通过配置转发规则讲内核日志通过 udp 发送到远程服务器。通用的Linux发行版内核都已编译 netconsole 模块, 直接使用即可。如自定义内核启用netconsole只需将以下内核选项打开即可(编译为模块).CONFIG_NETCONSOLE=mCONFIG_NETCONSOLE_DYNAMIC=y注:此文为之前的netconsole博文的更新版本.配置netconsole 模块加原创 2021-03-11 16:01:30 · 1624 阅读 · 0 评论 -
Linux x86_64 内存地址空间
/Documentation/x86/x86_64/mm.txtVirtual memory map with 4 level page tables:0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mmhole caused by [48:63] sign e转载 2013-05-10 09:27:28 · 4350 阅读 · 0 评论 -
Linux低分辨率下时钟中断调用流程
原创 2013-05-17 21:52:18 · 1726 阅读 · 0 评论 -
Taobao 的 Linux 内核开源贡献
http://adc.taobao.com/ppts/Linux%E5%86%85%E6%A0%B8%E5%BC%80%E6%BA%90%E8%B4%A1%E7%8C%AE.pdfkernel.taobao.org/转载 2013-05-01 23:36:46 · 2117 阅读 · 0 评论 -
单内核,微内核,混合内核OS结构比较
转载 2013-03-28 09:15:24 · 5124 阅读 · 0 评论 -
单内核OS与微内核OS结构比较
转载 2013-03-28 09:06:42 · 3886 阅读 · 0 评论 -
L4Linux的版本比较
转载 2013-03-28 09:08:30 · 2654 阅读 · 0 评论 -
MICROKERNEL-BASED OPERATING SYSTEMS
MICROKERNEL-BASED OPERATING SYSTEMSTOPICSThis lecture is going to introduce various aspects and concepts regarding the construction and implementation of microkernel-based operating system. In转载 2013-03-26 12:06:29 · 2029 阅读 · 0 评论 -
Linux UIO 驱动模型
原创 2013-03-26 09:49:10 · 2634 阅读 · 0 评论 -
LINUX内核段错误调试详细指南精品培训PPT讲义
LINUX内核段错误调试详细指南,段错误是LINUX程序开发过程中最困难的问题,此PPT给出的解决方法,并加以详细的分析,有非常高的参考价值。在线浏览地址:http://www.docin.com/p-105923877.html转载 2013-09-07 15:59:10 · 2055 阅读 · 0 评论 -
PFQ: a Linux kernel module for packet capturing on multi-core architectures
PFQ: a Linux kernel module for packet capturing on multi-core architecturesPFQ 是一个基于多核架构的Linux内核的数据包抓取模块,与PF_RING&NETMAP有点类似。看官方性能数据(http://netgroup.iet.unipi.it/software/pfq/performance.html)原创 2013-12-07 23:11:16 · 2714 阅读 · 0 评论 -
Kernel Memory Allocation
KernelMemoryAllocationhttp://kernelnewbies.org/KernelMemoryAllocationby Arnout Vandecappelle, MindIn the kernel, malloc() is not available. Instead, the kernel has to define its own memo转载 2013-12-07 23:05:17 · 3318 阅读 · 0 评论 -
Linux下使用Netfilter强制清除IPv4 DF标志
clear ip df kernel module此模块比较简单, 主要目的主要用于处理对设置DF标志的报文在过GRE隧道时会将其丢弃, 而不是进行分片!加载此模块后会对所有数据ipv4报文强制清除DF标志.注:未启用PMTUD功能;Linux GRE 隧道默认MTU 1476, 默认对所有未设置DF标志报文进行分片后再ENCAP;原创 2019-05-24 20:19:59 · 1416 阅读 · 1 评论 -
Linux 更新 CPU microcode
Linux 更新 CPU microcodeKernel 配置当前Linux kernel 中microcode 模块已提供Intel/AMD CPU更新接口, 配置以下参数启用此模块:CONFIG_MICROCODE=yCONFIG_MICROCODE_INTEL=yCONFIG_MICROCODE_AMD=yCONFIG_MICROCODE_OLD_INTERFACE=yCONFIG_M原创 2016-11-25 17:06:40 · 22915 阅读 · 0 评论 -
RedHat RealTime Kernel
http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/RHEMRG/SRPMS/转载 2013-12-22 12:56:24 · 3282 阅读 · 0 评论 -
Linux内核源码特殊用法
Linux内核源码特殊用法1 前言Linux内核源码主要以C语言为主,有一小部分涉及汇编语言,编译器使用的是Gcc。初次看内核源码,会遇到一些难以理解、晦涩的代码;而恰恰是这些晦涩的代码,在内核源码中经常出现。把一些晦涩、常见的代码看懂后,大家会发现看内核代码越来越顺利。本文以x86_64架构中的Linux 2.6.32-71.el6(RHEL 6)源码为例,选择一些经常出现转载 2013-12-30 23:08:18 · 5891 阅读 · 0 评论 -
关于内核中断线程化
很久没看内核代码,才发现RT中的中断线程早已合并到主线中,而且远在2009年2.6.29就已经合并了。Moving interrupts to threadsBy Jake EdgeOctober 8, 2008Processing interrupts from the hardware is a major source of latency in the原创 2013-12-04 16:40:18 · 3264 阅读 · 0 评论 -
推荐一个学习内核的博客
推荐一个学习内核的博客,讲解的很详细,内核也比较新Rock3的Linux博客原创 2013-12-04 10:42:27 · 2688 阅读 · 0 评论 -
软中断上下文能够睡眠吗?
转载自:tiloog的博客——沙漠绿洲——Alan's Blog for technologyhttp://bbs.ednchina.com/BLOG_ARTICLE_182873.HTM 这个问题实际上是一个老生常谈的问题,答案也很简单,Linux在软中断上下文中是不能睡眠的,原因在于Linux的软中断实现上下文有可能是中断上下文,如果在中断上下文中睡眠,那么会转载 2013-12-03 09:05:44 · 6667 阅读 · 0 评论 -
Kernel space DMA and User space DMA
Author: Joseph(Honggang Yang) Contents: Kernel space DMA and User space DMADate: 11-02-2011Last modified: 11-02-2011=======================================================1. The general step转载 2013-12-07 22:36:57 · 3208 阅读 · 0 评论 -
Linux kernel SMP 中断机制
源文档 http://www.whitecell.org/list.php?id=23>转载 2013-02-28 22:31:14 · 3631 阅读 · 0 评论 -
Linux kernel tick发起调度软中断函数调用图
原创 2013-02-28 22:25:19 · 2568 阅读 · 0 评论 -
Rescheduling Interrupts
What are Rescheduling Interrupts?With multi core machines, such as Intel Centrino Duos, the scheduler tries to spread processor activity across as many cores as possible. The general rule of thu转载 2013-02-01 13:20:49 · 5831 阅读 · 0 评论 -
禁用Dropbear中DNS反向查询连接客户端地址补丁
Dropbear 是一套来自澳大利亚的 轻量的sshd服务器,与OpenSSH相比,他更简洁,更小巧,运行起来占用的内存也更少,因此在嵌入式环境被广泛中使用. Dropbear 与 OpenSSH在客户端连接到服务器时都有一个相同的动作:就是会向设备配置的DNS Server反向查询客户端地址. 如果设备配置的DNS服务器地址有问题或速度比较慢, 就会导致客户端连接时产生延时,在客户端产生停顿了感觉. 而OpenSSH 可以通过在sshd_config中配置"UseDNS No"来禁用此动作,而Drop原创 2010-09-20 11:18:00 · 3555 阅读 · 1 评论 -
使用tcpdump抓取HTTP包
tcpdump -XvvennSs 0 -i eth0 tcp[20:2]=0x4745 or tcp[20:2]=0x4854原创 2010-09-19 15:22:00 · 10920 阅读 · 2 评论 -
封装kmalloc/malloc的一些小函数
由于开发时常需要对分配的内存长度进行管理,C语言下又没有像C++那样方便的类, 所以只好重新封装了下kmalloc/kfree的内存分配释放函数. 操作起来还算比较方便:) struct gbuffer{ u8 *buf; u32 len;};typedef struct gbuffer gbuffer;typedef struct gbuffer gbuffer原创 2010-05-19 21:42:00 · 3393 阅读 · 0 评论 -
在内核中实现URL重定向
URL redirection,或称网址重定向或URL重定向,是指当使用者浏览某个网址时,将他导向到另一个网址的技术。常用在把一串很长的网站网址,转成较短的网址。因为当要传播某网站的网址时,常常因为网址太长,不好记忆;又有可能因为换了网络的免费网页空间,网址又必须要变更,不知情的使用者还以为网站关闭了。这时就可以用网络上的转址服务了。这种方法还可以用在广告推送及拦截上, 最常见的就是电信使用的了。原创 2010-05-09 17:04:00 · 9309 阅读 · 11 评论 -
在内核模块中通过系统调用ioctl获取ATA/SCSI硬盘序列号
open, read, ioctl 这些系统调用本来是提供给用户空间的程序访问的,所以,对传递给它的参数,它默认会认为来自用户空间,在->write()函数中,为了保护内核空间,一般会用get_fs()得到的值来和USER_DS进行比较,从而防止用户空间程序“蓄意”破坏内核空间; 而现在要在内核空间使用系统调用,此时传递给->ioctl()的参数地址就是内核空间的地址了,在USER_DS之原创 2010-04-20 16:46:00 · 9217 阅读 · 1 评论 -
内核sk_buff工作线程总结
对skb采用异步序列操作的一个总结, 写成一系列函数. 将skb出队列作为一个线程调用, skb处理则采用回调函数, 在线程里直接调用, 提高了通用性. 也可以将一个skb_task定义为PER_CPU变量, 达到并行处理目的. :)#include struct skb_task{ struct task_struct *task; struct completion原创 2009-12-26 22:09:00 · 2122 阅读 · 2 评论 -
在内核中构造一个UDP 数据
send_udp 构造一个udp数据包并根据网络设备发送int send_udp(struct net_device *odev, u16 local_port, u32 remote_ip, u16 remote_port, u8 *msg, int len){ struct sk_buff *skb; int total_len, eth_len, ip_l原创 2010-03-04 13:06:00 · 3989 阅读 · 0 评论 -
在内核中使用线程与skb队列发送数据
在内核中我们发送数据一般使用dev_queue_xmit. 但是每次都需要通读等待返回, 通过线程的方式, 可以实现异步模式, 无需等待发送完成.可以大大加快发送速度.以下是示例代码:static int xmit_thread_worker(void *arg);/////////////////////////////////////////////////////////////原创 2009-12-11 03:31:00 · 3947 阅读 · 1 评论 -
RCU and Unloadable Modules
RCU and Unloadable Modules转载 2010-11-26 23:56:00 · 2198 阅读 · 0 评论 -
编译静态expect现undefined reference to `openpty' 错误解决方法
编译expect现undefined reference to `openpty' 错误解决方法原创 2010-12-14 14:14:00 · 9616 阅读 · 0 评论 -
开启82571EB/82572EI Multiple transmit queues
开启82571EB/82572EI Multiple transmit queues82571EB/82572EI 是Intel生产的1000M以太网控制芯片, 支持双 RX/TX QUEUE, 在Linux中使用e1000e驱动提供支持. 因在一个特殊应用中需启用其multiple transmit queues支持, 而Linux e1000e驱动默认只启用了 RX QUE原创 2012-11-06 21:09:46 · 2757 阅读 · 0 评论 -
Linux kernel 3.4的X32 ABI介绍
New X32 ABI: 64-bit mode with 32-bit pointersThe 64 bits mode of x86 CPUs enlarges the CPU registers to 64 bit, allowing to address larger (>4GB) amounts of memory. This widening, however, has a原创 2012-08-13 15:42:53 · 3516 阅读 · 0 评论 -
bounce buffer
在 IA-32 系统中,物理内存最开始的1GB 被称为“低端内存”,1GB 以上的部分称为“高端内存”。先前的Linux 核心版本要求通往存储设备的数据缓存必须放在物理RAM 的低端内存区域,即使是应用程序可以同时使用高端内存和低端内存也存在同样状况。这样,来自低端内存区域数据缓存的I/O 请求可以直接进行内存存取操作。但是,当应用程序发出一个I/O 请求,其中包含位于高端内存的数据缓存时,核心将原创 2012-07-07 01:05:18 · 9505 阅读 · 1 评论 -
一个详细介绍CPU & Memory & Kernel的博客
http://duartes.org/gustavo/blog/category/software-illustrated原创 2011-12-26 12:49:20 · 1968 阅读 · 0 评论 -
What Every Programmer Should Know About Memory
What Every Programmer Should Know About Memory转载 2011-12-26 12:42:39 · 1702 阅读 · 0 评论 -
OOM Killer
OOM Killer The functions, code excerpts and comments discussed below here are from mm/oom_kill.c unless otherwise noted.It is转载 2011-08-12 16:29:30 · 1757 阅读 · 0 评论 -
如何保留低端内存
如何保留低端内存环境 :Red Hat Enterprise Linux (RHEL) 5.x (X86)在 X86 高内存设备中,当用户进程使用 mlock() 在常规区域分配大量内存时,可重新使用的 lowmem 内存可能会不足,而一些系统呼叫将失败并显示转载 2011-08-03 17:10:05 · 5271 阅读 · 10 评论