- 博客(12)
- 收藏
- 关注
原创 TCP学习---TCP头
这段时间在查linux网络相关的问题,涉及到网络驱动,IP/TCP/neighbour/route/rtroute等相关的内容。不得不再次复习下相关的知识。感觉还是 这本书好啊.先熟悉下tcp的头吧,已经相关字段的解释。 Flag含义:URG: UGR指针有效;ACK: 32位的ACK序号有效;PSH: 接收者应该尽快把数据传给应用层;RS
2012-04-24 18:16:09
555
原创 Linux 中的IPC(五)----定时器(Timer)
在内核中,当需要定时实现某个功能时,可以使用timer来实现该功能。timer是一种softirq,所以对timer handler的要求与softirq一样。timer_list的定义如下:structtimer_list { struct list_head entry; unsigned long expires; void (*function)(
2012-04-19 22:14:28
1764
原创 Linux 中的IPC(四)----softirq
linux中断分为上下两部分,两部分的区别就是,上半部分中断是关闭的,防止中断嵌套,但为了提高实时响应,上半部分的执行时间一般都很短,大部分的处理放在下半部分来实现,下半部主要就是softirq来实现的。执行softirq的时候,上下文环境是中断环境,但是中断是打开的。softirq中调用的函数必须满足irq相同的条件。linux中定义了softirq类型包括:HI_SOFTIRQ
2012-04-18 20:32:44
775
原创 Linux 中的IPC(三)----work和workqueue
workqueue实际上就是方便内核中简单的执行某个函数。其本质上在内核创建kthread,由kthread在运行相应的cpu_workqueue_struct中的work。workqueue中涉及的主要对象有:Ø work_queueØ cpu_workqueue_structØ work_struct/ delayed_work三者关系如下图所示:数据
2012-04-17 20:56:08
1432
原创 Linux 中的IPC(二)-----内核线程(Kthread)
简介kthread只在内核态运行的,由于在内核态,它没有独立的地址空间,但是有独立的栈。API(1) kthread_createstruct task_struct *kthread_create(int(*threadfn)(void *data), void *data, co
2012-04-16 20:37:35
2454
原创 Linux 内核基本概念(一)----PerCPU变量
在linux SMP环境中,某些变量在CPU同时时,并不需要进行互斥操作,为了支持这种功能,引入了percpu变量的概念。这些变量在每个CPU上有一个副本,它们相互没有影响,但是它们拥有相同的类型和名字。这样在编码的时候,只需要变量名称就可以访问,但是可能访问的是不同的拷贝,这由当前程序运行在哪个CPU决定的。在实际使用中,首先都要获取当前CPU上的值,然后在操作改变量。
2012-04-16 20:19:00
1367
原创 Linux 中的IPC(一)-----简介
IPC,inter process communication,进程间通信,顾名思义。其实IPC不仅仅只是进程间的通信,它更广泛的意义,应该是,Linux中的不同的执行体之间的通信方式。那么要搞明白IPC,首先就要搞明白,在Linux中,到底都有哪些执行体,只有明白了执行体以及不同的执行体之间的区别,才会更深入明白不同的IPC之间的优劣。这里执行体的概念,指的是Linux中能够独立作为调度
2012-04-12 21:28:13
1155
原创 Linux中的log介绍(四)--klogd与syslogd的交互
问题由于内核log_buf的大小受限,而内核随着时间的运行,其日志信息会越来越多,当过多时,log_buf中的日志信息就会被循环覆盖。为了解决这个问题, 在用户空间就开发了klogd守护进程。它通过klogctl()将log_buf中的日志信息读取出来,然后发给syslogd()。syslogd的接口(1) 命令接口, logger logger [-isd]
2012-04-11 20:45:27
9126
原创 Linux中的log介绍(三)---内核日志
内核日志的存储 1. 地址内核的日志存在log_buf指向的内存缓冲区中。大小在新的内核是可配置的,CONFIG_LOG_BUF_SHIFT=xx 2. 格式 xxxxxxAPI(1) printk:内核代码中常见的日志输出方式(2)do_syslog/syslog: 内核提供的系统调用,用来操作log_buf(3)klogctl:C库中提供
2012-04-10 21:51:03
11429
原创 Linux中的log介绍(二)--Syslogd
sysklogd RPM包中一般包含syslogd,klogd两个守护进程,它们分别用来完成对系统和内核日志信息的管理。 Syslogd 功能syslogd负责接收系统中的每个进程发送过来的日志消息,然后根据消息的Priority和/ect/syslogd.conf的配置,进行分类存储或者转发。 日志存储格式syslogd记录的每条消息
2012-04-09 21:50:44
3574
原创 Linux中的log介绍(一)---概述
当在linux中工作时,我们发现,提到linux中的日志(log)信息,就会想到syslog,printk中的内核日志,dmesg等等,但却对它们地关系有时候并不清楚。笔者在接触到Linux的几年中,曾经就被这些log搞得昏头转向,不知道该去哪里找自己需要的log,为了弄清楚这个问题,决定花力气把这个问题搞清楚。下面的图清楚地表达出了linux中的各种日志,以及日志相关的函数命令的关系。
2012-04-08 23:45:57
4270
原创 写博客的原因
在嵌入式软件领域工作也已经整整7年了,从当初的一窍不通,到如今的初窥门径,得得失失,都在脑中或走或留。为了让这些走留的信息能够有一个永久的记忆,把它记录下来,用博客不得不说是一个好办法。这样除了能够自己将来翻阅,也能够与同行有一个交流的机会,也算是一件善事。下面简单的介绍自己的工作经历。本人一直工作在PowerPC系列的CPU架构上,从8XX,82XX,85XX,一直到最新的P4X
2012-04-08 23:31:30
598
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人