自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

刘末的专栏

linux内核爱好者

  • 博客(61)
  • 资源 (32)
  • 收藏
  • 关注

原创 Linux文件的扩展属性

其中capability,selinux为常用项,capability 是linux内核对能力的的配置参数,selinux则是内部强访等使用的配置参数。在进程启动后,他每通过一个系统调用时,都会使用cap_capable 来检查它的cred中的cap_effective是否有效。启动一个bash,以centos的用户名,此用户名的capability为cap_net_admin。这两个命令的关键字是attr,不是xattr,但他们是文件的扩展属性的另一个基础版本。

2023-05-31 16:57:19 1381 1

原创 80211(b/a/n/ac)速率介绍

wifi物理层技术。

2023-05-31 09:37:12 3609

原创 centos7(redhat7) 中localtime_r有一个BUG

centos7(redhat7) 中localtime_r有一个BUG。具体过程如下:step1 后台进程启动。step2 用户修改时区。step3 后进进程在使用localtime_r取时间时,不会更新时区。取得时间还是旧的时间。但是localtime使用新的时区计算时间。step4 此时再使用localtime调用后,localtime_r才使用新时区,计算时间。PS, centos6...

2020-03-03 11:34:11 916

原创 epoll的注意事项

最近使用了epoll发现。在epoll_create 返回的fd,被配置FD_CLOEXEC,是不起作用的。子进程可以继续使用它。并可以继续使用epoll_ctl增加侦听文件句柄。而父进程可以收到此句柄的读写事件。但是父进程由于没有此句柄,所以读失败。在高版本的epoll_create1(flags),此flags可以EPOLL_CLOEXEC,完成CLOEXEC的功能。...

2020-03-03 10:54:34 340

原创 函数指针的用法。

#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>typedef int (*funtcb)(void);int functa(void){ printf("%s %d \n",__func__,__LINE...

2018-10-27 09:51:14 593

原创 疑问:进程启动时如何加载动态库。

A程序与B程序都需要同一个动态库libc.so那A程序已经运行了,并加载了libc.so到内存,那么此时启动B程序,还需要加载动态库libc.so嘛?还是说B程序直接调用A程序已经加载了个libc.so呢?https://blog.csdn.net/YEYUANGEN/article/details/37657937...

2018-08-10 16:54:53 1114

转载 关于asmlinkage

关于asmlinkage  声明,仅为了便于自己记忆和查询,非原创,摘自:http://blog.csdn.net/skywalkzf/archive/2009/12/24/5068966.aspx   什么是 "asmlinkage"?相信大家在看linux的source code的时候,都会注意到asmlinkage这个宏,它是用来做什么的呢?The asmlinka...

2018-08-10 15:35:18 691

原创 高通里的extender_ap,proxysta,qwrap

在谈以上三个技术时,需要先谈一下WDS。这些技术都是对WDS的扩展与增强。WDS技术是把两个AP连接起来,一个做主,一个作从。从AP把信号范围进行了扩展(range extender)。那么可以多级扩展吗?如下:在一个方向上进行多级扩展?ROOTAP  ----- wdsAp -----wdsap.我感觉是不可行的。高通的extender_AP技术组网图:AP-----extender_ap  -...

2018-05-24 11:56:50 1836

原创 TC 队列规定家族:根、句柄、兄弟和父辈

TC parenthandle参数的用法tc class上的parent :参数是队列ID。classid是自己的ID。tc qdisc parent 参数是类的ID。见下例: tc qdisc add dev eth0 root handle 9: htb default 11 #root id 9 tc class add dev eth0 pare

2018-04-17 14:48:09 1257

原创 gcc同时连接静态库和动态库。

我在centos7上的测试:makefile文件all: test static_mainCC=gccQ=E=echo%.o: %.c $(Q)$(CC) -c -o $@ $(CFLAGS) $< $(Q)$(E) " CC " $<libdyn.so:dyn.o $(CC) -shared -fPIC -o $@ ...

2018-04-08 17:33:22 1679

原创 C语言可变参数打印。

#include <stdio.h>#include <stdlib.h>#include <string.h>#include <sys/errno.h>#define __log(t,fmt,...)   \            printf("mesg level: %d |"fmt,t,##__VA_ARGS__);#d...

2018-03-30 15:13:08 944

原创 又见高通板子flash分区问题。

高通的4028芯片。板子是:IPQ40xx/AP-DK01.1-C2Uboot可能见到128Mflashlinux系统只看到64M ,见下图的mtd8看到uboot代码,bootipq命令的过程先配置一些环境变量setenv bootargs 'ubi.mtd=rootfs root=mtd:ubi_rootfs rootfstype=squashfs rootwait'setenv fsboot...

2018-03-21 14:49:15 4837 2

原创 linux与应用层通信方式 之nf_sock_opt

//内核部分代码。大家可以COPY ipt_sockopts//#include #include #include #include #include "hello_sock_opt.h"#include #include #include #include #include #include #include #include #include #include

2018-01-19 15:07:32 583

转载 OFDM+sym的立体图

这个图很好的解释了wifi的“信息符号”,“guard interval",子载波。三个概念。PS:这个图是从一个国外网上COPY下来的,但忘了源地址了。

2018-01-15 13:43:36 334

原创 修改高通IPQ4019/4018的flash的分区

修改IPQ4019/4018的MTD分区简介高通的IPQ4018的SoC使用了ARM的CPU,并使用了高通的QSDK.在开发中发现很难在它的架构中去修改MTD分区信息。今天就提供一种可以修改MTD分区的方式。 MTD分区信息是如何从Uboot传到linux的,有几种方式?换一种问法 uboot如何把参数传入linux呢?cmdline和FTD(设备树)先讲一下简单的cmdlineUboot以boo...

2018-01-05 15:40:38 9201

原创 python类的动态方法是否可以访问到私有变量。

python的类,类的私有属性__attr。私有属性只能通过类的方法来访问。又学习到了实例和类都可以动态增加方法和属性。在此我就有一个疑问。类的动态增加的新方法,可以修改类里的私有属性吗?class Student(object):    def __init__(self,name,score):        self.__name=name;     

2017-12-28 10:42:47 1312

原创 闭包的两大基础

闭包的两大基础。词法定界

2017-08-30 20:08:01 291

原创 http与CGI的测试之POST的方式。

在httpRequester发出POST时,可以由两种返回参数(提交参数)的方式。1是在URL里;2是在content里。如下图在CGI中进行接收时,对两种方式的接收方式也不一样。URL后面的参数由HTTP服务器放到全局变量QUERY_STRING里带给cgi.content里的则由HTTP服务器启动CGI后,使用stdin发给CGI。由CGI read stdin来得

2017-08-30 11:14:20 3810

原创 http与cgi的小测试之GET

httpcgilua客户端:firefox + httpRequesterl

2017-08-29 11:47:48 828

原创 尾递归与尾调用

在很多的高级语言中,都会提到尾递归的特性。当年在大学里学递归时,老师特别强调递归次数与进程栈的关系。递归越多,函数入栈越多,由于进程有栈空间有线,会生成栈越界。下图是一个入栈的过程。main call funcA ;funcA call funcB

2017-08-28 09:11:58 1070

翻译 centos7 64位系统安装32位库时发生冲突

冲突的日志如下:Transaction Check Error:file /usr/share/man/man1/ca.1ssl.gz from install of openssl-0.9.8e-27.el5_10.3.x86_64 conflicts with file from package openssl-0.9.8e-27.el5_10.1.i686file /usr/shar

2017-08-23 10:39:41 3703

原创 Vbox error: cannot be closed because it is still attached to 1 virtual machines

在使用vritualBox时,手动移动了一下虚拟机的物理位置。再双击win7.vbox发生了如下错误。通过google, 得到了解决方式。1,先把win7.vbox 备份。2,使用文本工具打开win7.vbox,3,,删除有关hd的一项配置信息。

2017-08-23 07:43:49 4196 1

原创 为linux内核子目录里的makefile增加-g

在相应的子目录里的Makefile里增加一句。EXTRA_CFLAGS +=-g此这个目录里的.o文件会带有debug。

2017-08-21 17:29:24 3420

转载 printk(%p的各种方式)

https://www.kernel.org/doc/Documentation/printk-formats.txtIf variable is of Type, use printk format specifier:--------------------------------------------------------- int %d or %x unsign

2017-06-21 11:55:37 8920 1

原创 https原理交互图

http://www.ruanyifeng.com/blog/search.html?cx=016304377626642577906%3Ab_e9skaywzq&cof=FORID%3A11&ie=UTF-8&q=cdn&sa.x=0&sa.y=0http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.htmlhttp://www.

2017-06-16 11:27:13 885

原创 BPF socket filter

伯克利包过滤(Berkeley Packet Filter,BPF)以dhcpc过滤udp port 68为例,进行一下说明static const struct sock_filter filter_instr[]

2017-06-06 19:26:57 1996

原创 IPQ4019MTD分区生成的过程

简介本文介绍一个IPQ4019的MTD分区信息是如何从配置文件一步步传递到linux内核的。这个过程有几个部分组成,分区信息在编译过程中的传递;升级时写入flash区;设备上电时linux如何得到分区信息。 上电后linux打印的MTD分区如下图。 分区信息在编译过程中的传递原始的配置文件BOOT.BF.3.1.1/boot_images/build/ms/bin/

2017-04-21 13:37:17 10585 6

原创 从设备树的reg到/proc/iomem

在linux系统中,iomem_resource的信息被输出到/proc/iomem中。我们以高通IPQ4019芯片为例进行一下示例说明step1 在/proc/iomem中看一下iomem_resource的情况[root@Abloomy:~]# cat /proc/iomem060f8800-060f88ff : qscratch_base078af000-07

2017-04-20 17:26:15 4171 2

原创 嵌入式系统linux 记录内存panic

简介在内存发生panic时,需要把panic的日志保存下来。以方便日后进行分析。目前有三种记录的方式: kdump; mtdoops; crashlog(这是openwrt特别的功能,正式linux内核中没有)大家对kdump比较了解。它主要使用于x86系统。因为它使用占用大量内存和硬盘。mtdoops和crashlog主要用于嵌入式的环境。也只是记录文本日志。mtdo

2017-04-19 15:17:51 5379

原创 ipq4019 识别板卡型号的过程

openwrt系统启动后,会在/tmp/sysinfo/生成两个文件。其中保存了板卡型号的信息。如下日志。[root@Abloomy:sysinfo]# pwd/tmp/sysinfo[root@Abloomy:sysinfo]# lsboard_name model[root@Abloomy:sysinfo]# # cat board_nameap-dk01.1-c1

2017-04-17 18:35:00 6334 2

原创 强制目标

例子下:.PHONY: fileB   #在makefile中.PHONY:表示fileB是一个标签,不是一个真文件。每一次更新fileB时,它的Recipe(制作方式)都会执行。fileB:    echo `date` >>$@ #fileA 的 prerequisite是FORCE,FORCE是一个无prerequisite无recip

2017-02-28 09:04:43 413

原创 内核中取得调用进程PID

task_pid_nr(current);

2016-11-03 16:17:20 3068

原创 在新linux中使用proc_create_data编写proc

主要讲使用proc_create_data如何传递私有数据。其中可以参考/fs/proc/uptime.c以下是我在工作中,针对一个phy驱动写的一个procconst char *___dev_name(const struct device *dev){ /* Use the init name until the kobject becomes avail

2016-07-19 15:03:04 14958 1

原创 openwrt 内核完成后的初始过程。

openwrt

2016-07-07 09:24:41 3730

原创 openwrt编译qca驱动不成功。gcc -isystem问题。

在最新openwrt里移植qca驱动发现,编译不成功,错误如正下:GNU C (OpenWrt/Linaro GCC 4.8-2014.04 unknown) version 4.8.3 (mips-openwrt-linux-uclibc) compiled by GNU C version 4.4.7 20120313 (Red Hat 4.4.7-16), GMP v

2016-01-09 16:10:58 8029 4

原创 MCS速率计算公式

MCS速率计算公式HT20的方式。MCS索引调制方式子载波个数52/56数据载波为总子载波-4。FEC有效信息和整个编码的比率3/4 或是5/6空间流数1/2信息符号间隔GI800ns的速率信息符号间隔GI400ns 的速率0BPSK

2015-07-27 17:44:35 11006

原创 lsdk无线驱动与管理层的接口

lsdk无线驱动与管理层的接口在linux的应用层,有wlanconfig 和iwconfig,iwpriv三个命令来配置和管理无线接口,在内核里有三种不同的处理方式与三者对应。Wlanconfig 主要是创建虚拟接口; iwconfig 和iwpriv则可以配置无线接口。当然还有hostpad也会对无线虚拟接口进行配置。命令Ioctl号驱动

2015-07-27 17:02:50 2203

原创 查询mac地址所属厂家的网站

http://www.macvendorlookup.com/

2015-06-04 14:51:20 2957

原创 ssh反向连接 (SSH中继)

SSH中继。SSH反向连接

2015-06-03 20:01:11 3043

原创 dd命令,分割文件。合入文件。

/tmp # /tmp # dd if=a.bin of=c.bin bs=128k skip=18     //一个块为128K,跳过前18块。18+1 records in18+1 records out/tmp # dd if=a.bin of=b.bin bs=128k count=18    //bs=128k,表示一个块128k, 从文件头开始,读取18块。18+0

2015-05-26 17:33:30 12133

使用WinDbg从宿主机来调试win7虚拟机.docx

使用winDbg来调试虚拟win7系统。 本文讲了如何建立调试环境。

2018-12-03

linux设备驱动开发详解代码

《linux设备驱动开发详解》一书的示例代码。 基于最新的Linux4.0内核开发。

2018-09-10

11n的技术改讲

用图示的方式讲一下11n的几项技术。 OFDM, QAM,其中符号集时间是4US这是重点。 还有在MAC层的改进技术。

2018-01-14

AT命令集文档

全英文的AT命令

2017-05-25

USB官网文档

从USB官网下载来的有关USB协议规范的所有文档,包括USB2.0,3.0,type-c USB Power Delivery,Micro-USB_final,USB OTG and Embedded Host

2017-01-05

USB 2.0英文规范

Motivation The original motivation for the Universal Serial Bus (USB) came from three interrelated considerations: • Connection of the PC to the telephone It is well understood that the merge of computing and communication will be the basis for the next generation of productivity applications. The movement of machine-oriented and human-oriented data types from one location or environment to another depends on ubiquitous and cheap connectivity. Unfortunately, the computing and communication industries have evolved independently. The USB provides a ubiquitous link that can be used across a wide range of PC-to-telephone interconnects. • Ease-of-use The lack of flexibility in reconfiguring the PC has been acknowledged as the Achilles’ heel to its further deployment. The combination of user-friendly graphical interfaces and the hardware and software mechanisms associated with new-generation bus architectures have made computers less confrontational and easier to reconfigure. However, from the end user’s point of view, the PC’s I/O interfaces, such as serial/parallel ports, keyboard/mouse/joystick interfaces, etc., do not have the attributes of plug-and-play. • Port expansion The addition of external peripherals continues to be constrained by port availability. The lack of a bi- directional, low-cost, low-to-mid speed peripheral bus has held back the creative proliferation of peripherals such as telephone/fax/modem adapters, answering machines, scanners, PDA’s, keyboards, mice, etc. Existing interconnects are optimized for one or two point products. As each new function or capability is added to the PC, a new interface has been defined to address this need.

2017-01-04

HTTPLUS 3.3

很不错的网络测试工具。 还有串口工具。 之前港湾公司内部开发的小工具。

2015-06-01

物联网tinyos系统的编程语言。

nesC程序设计语言是对语言的扩展,nesC语言的设计体现了TinyOS的结构化概念和执行模型。

2015-01-23

sys V init

大家都知道linux的第一个进程是/sbin/init.那这里是它的源代码。

2014-12-19

IEEE80211标准技术文件的2012版本

IEEE80211标准技术文件的2012版本

2014-11-21

IEEE80211的2009版本

IEEE80211标准技术文档 2009版本。

2014-11-21

makefile中文手册

GNU make中文手册 ver - 3.8 第一章:概述 1.1 概述 1.2 准备知识 第二章 GNU make 介绍 2 GNU make 介绍 2.1 Makefile简介 2.2 Makefile规则介绍 2.3 ...

2014-11-13

GCC 中文手册

这是网友自己根据gcc的英文手册翻译的。 不能保证其中的内容是正确的,但大家可以用它做一些入门学习和查阅。

2014-10-28

linux常用命令列表。

linux常用命令的列表。 没有详细的操作说明。

2014-10-28

wifi wpa wpa2的信标报文

wifi wpa wpa2的信标报文 {wpa2,wpa,mixed}+{tkip,aes,tkip+aes} 共9个报文。

2014-10-14

Linux C语言编程一站式学习

是一个介绍C语言的基础书籍,内容很全面,详尽。 新手可以用它入门。 老手保存一份,方便以后查阅冷门知识点。

2014-10-14

TPlink-WDN3321空口抓包

omnipeek与TPlink-WDN3321空口抓包的配置。

2014-10-08

Linux_event层机制分析.pdf

Linux_event层机制分析 前曾研究了一下输入子系统的原理,给人的感觉是输入子系统很复杂.但其实内核开发者在这方面已经做得很完善了, 输入子系统虽然错综复杂,但是只要我们领会了输入子系统的一些设计思想后,我们要使用它并非难事.

2013-10-18

《Qt Creator快速入门》代码

《Qt Creator快速入门》代码 推荐使用 Windows xp 系统 + Qt Creator 2.1.0 + Qt 4.7.2 ,如果使用较低的Qt版本可能出现一些问题。 请将源码复制到 路径中不包含中文字符 的目录中! 书中及代码中的所有问题,可以到 Qter开源社区(www.qter.org) 进行讨论交流!

2013-10-18

python_pocket_ref_4ed

python 学习资料,英文版。 Python is a general-purpose, object-oriented, and open source computer programming language. It is commonly used for both standalone programs and scripting applications in a wide variety of domains, by hundreds of thousands of developers.

2013-10-18

kernel crash.

英文版 linux kernel crash 转储功能

2013-10-18

Linux 的高级路由和流量控制HOWTO --中文版

Linux 的高级路由和流量控制HOWTO 中文版 一个非常上手的关于 iproute2、流量整形和一点netfilter 的指南。

2012-11-29

ip 命令手册

ip route2 中IP 命令的使用示例与详解。

2012-11-29

IPv6详解中文版

全面详细地讲解IPv6 由浅入深地详解ipv6。

2011-12-13

深入linux内核架构

此书为英语版。 Professional_Linux_Kernel_Architecture

2011-10-11

漫谈兼容内核--毛德操

http://www.longene.org/ Longene是一个自由、开源的操作系统项目,目的是要把Linux的内核扩充成一个既支持Linux应用、也支持Windows应用,既支持Linux设备驱动、也支持Windows设备驱动的兼容内核;使用户可以直接在Linux操作系统上高效运行Windows应用。

2011-09-23

C语言深度解剖

一本深度讲解C语言细节的书籍。作者用生动语言,形象的比喻为我们讲解C语言的细节,C语言常见的问题,也提及了一些操作系统,编译,调试等内容。

2011-09-08

Profibus中文规范

profibus中所应用到的物理层、数据链路层和应用层的说明。以及用户规范

2010-07-19

Linux内核源码详解

Linux内核全部源代码是一个庞大的世界,大约有200多万行,占60MB左右的空间。因此,如何在这庞大而复杂的世界中抓住主要内容,如何找到进入Linux内部的突破口,又如何能把Linux的源代码变为自己的需要,这就是本书要探讨的内容。 首先,本书的第一章领你走入Linux的大门,让你对Linux内核的结构有一个整体的了解。然后,第二章介绍了分析Linux源代码应具备的基本硬件知识,这是继续向Linux内核迈进的必备条件。中断作为操作系统中发生最频繁的一个活动,本书用一章的内容详细描述了中断在操作系统中的具体实现机制。 大家知道,操作系统中最核心的内容就是进程管理、内存管理和文件管理。本书用大量的篇幅描述了这三部分内容,尤其对最复杂的虚拟内存管理进行了详细的分析,其中对内存初始化部分的详细描述将对嵌入式系统的开发者有所帮助。 在对Linux内核有一定了解后,读者可能希望能够利用内核函数进行内核级程序的开发,例如开发一个设备驱动程序。Linux的模块机制就是支持一般用户进行内核级编程。另外,读者在进行内核级编程时还可以快速查阅本书附录部分提供的Linux内核API函数。 网络也是Linux中最复杂的部分之一,这部分内容足可以写一本书。本书仅以面向对象的思想为核心,分别对网络部分中的四个主要对象:协议、套接字、套接字缓冲区及网络设备接口进行了分析。有了对这四个对象的分析,再结合文件系统、设备驱动程序的内容,读者就可以具体分析自己感兴趣的相关内容。 Linux在不断地发展,本书锁定版本为Linux2.4.16。尽管本书力图反映Linux内核较本质的东西,但由于我们的知识有限,对有些问题的理解难免有偏差,甚至有不少“bug",希望读者能尽可能多地发现它,以共同对本书进行改进和完善。 在本书的编写的过程中,作者查阅了大量的资料,也阅读了大量的源代码,但本书中反映的内容也仅仅是主要内容。因为一本书的组织形成是一种线性结构,而知识本身的组织结构是一种树型结构,甚至是多线索的网状结构,因此,在本书的编写过程中,作者深感书的表现能力非常有限,一本书根本无法囊括全部。在参考书目中,我们将给出主要的参考书及主要网站的相关内容。 本书的第一版是《Linux操作系统内核分析》该书曾被中科院指定为考博参考书,在第一版的编写过程中,康华、季进宝、陈轶飞、张波、张蕾及胡清俊参预了编写。第一般出版后得到了很多读者的充分肯定和赞扬。在本次改版的过程中,依然保留了第一版的风格,但加深了对进程管理、内存管理及文件管理的剖析。 本书在2002年出版后,很多读者来信给予肯定,但是因为针对的是2.4版内核,出版社不再给予出版。应不少读者的要求,本书的内容放在内核之旅网站,欢迎读者阅读并讨论。 作者 陈莉君

2010-05-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除