自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 TCP学习---TCP头

这段时间在查linux网络相关的问题,涉及到网络驱动,IP/TCP/neighbour/route/rtroute等相关的内容。不得不再次复习下相关的知识。感觉还是 这本书好啊.先熟悉下tcp的头吧,已经相关字段的解释。 Flag含义:URG:  UGR指针有效;ACK:  32位的ACK序号有效;PSH:  接收者应该尽快把数据传给应用层;RS

2012-04-24 18:16:09 522

原创 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 1710

原创 Linux 中的IPC(四)----softirq

linux中断分为上下两部分,两部分的区别就是,上半部分中断是关闭的,防止中断嵌套,但为了提高实时响应,上半部分的执行时间一般都很短,大部分的处理放在下半部分来实现,下半部主要就是softirq来实现的。执行softirq的时候,上下文环境是中断环境,但是中断是打开的。softirq中调用的函数必须满足irq相同的条件。linux中定义了softirq类型包括:HI_SOFTIRQ

2012-04-18 20:32:44 730

原创 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 1386

原创 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 2380

原创 Linux 内核基本概念(一)----PerCPU变量

在linux SMP环境中,某些变量在CPU同时时,并不需要进行互斥操作,为了支持这种功能,引入了percpu变量的概念。这些变量在每个CPU上有一个副本,它们相互没有影响,但是它们拥有相同的类型和名字。这样在编码的时候,只需要变量名称就可以访问,但是可能访问的是不同的拷贝,这由当前程序运行在哪个CPU决定的。在实际使用中,首先都要获取当前CPU上的值,然后在操作改变量。

2012-04-16 20:19:00 1310

原创 Linux 中的IPC(一)-----简介

IPC,inter process communication,进程间通信,顾名思义。其实IPC不仅仅只是进程间的通信,它更广泛的意义,应该是,Linux中的不同的执行体之间的通信方式。那么要搞明白IPC,首先就要搞明白,在Linux中,到底都有哪些执行体,只有明白了执行体以及不同的执行体之间的区别,才会更深入明白不同的IPC之间的优劣。这里执行体的概念,指的是Linux中能够独立作为调度

2012-04-12 21:28:13 1099

原创 Linux中的log介绍(四)--klogd与syslogd的交互

问题由于内核log_buf的大小受限,而内核随着时间的运行,其日志信息会越来越多,当过多时,log_buf中的日志信息就会被循环覆盖。为了解决这个问题, 在用户空间就开发了klogd守护进程。它通过klogctl()将log_buf中的日志信息读取出来,然后发给syslogd()。syslogd的接口(1) 命令接口, logger logger [-isd]

2012-04-11 20:45:27 9037 2

原创 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 11332

原创 Linux中的log介绍(二)--Syslogd

sysklogd RPM包中一般包含syslogd,klogd两个守护进程,它们分别用来完成对系统和内核日志信息的管理。 Syslogd 功能syslogd负责接收系统中的每个进程发送过来的日志消息,然后根据消息的Priority和/ect/syslogd.conf的配置,进行分类存储或者转发。  日志存储格式syslogd记录的每条消息

2012-04-09 21:50:44 3469

原创 Linux中的log介绍(一)---概述

当在linux中工作时,我们发现,提到linux中的日志(log)信息,就会想到syslog,printk中的内核日志,dmesg等等,但却对它们地关系有时候并不清楚。笔者在接触到Linux的几年中,曾经就被这些log搞得昏头转向,不知道该去哪里找自己需要的log,为了弄清楚这个问题,决定花力气把这个问题搞清楚。下面的图清楚地表达出了linux中的各种日志,以及日志相关的函数命令的关系。

2012-04-08 23:45:57 4164

原创 写博客的原因

在嵌入式软件领域工作也已经整整7年了,从当初的一窍不通,到如今的初窥门径,得得失失,都在脑中或走或留。为了让这些走留的信息能够有一个永久的记忆,把它记录下来,用博客不得不说是一个好办法。这样除了能够自己将来翻阅,也能够与同行有一个交流的机会,也算是一件善事。下面简单的介绍自己的工作经历。本人一直工作在PowerPC系列的CPU架构上,从8XX,82XX,85XX,一直到最新的P4X

2012-04-08 23:31:30 566

空空如也

空空如也

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

TA关注的人

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