kernel&
liangshoulong
如果多吃鱼可以补脑让人变聪明的话,那么我至少得吃一对儿鲸鱼……:(
展开
-
Linux最新稳定内核2.4.x的网络接口源码的结构2
如果你在Linux启动的时候有留意启动的信息, 或者在linux下打命令dmesg就可以看到这一段程序输出的信息: IP Protocols: ICMP,UDP,TCP,IGMP也就是说现在数组inet_protos[]里面有了ICMP,UDP,TCP,IGMP四个协议的inet_protocol数据结构,数据结构包含了它们接收数据的处理函数。 Linux 2.4.16在linux/inc原创 2017-08-04 21:57:10 · 187 阅读 · 0 评论 -
内核timer使用
init_timer,初始化add_timer,启动mod_timer,修改del_timer,删除timer_list结构function定时函数data定时函数所需的参数expires期望的定时时间如jiffies+xx*HZ表示几秒后// declare timer_list, define functionstruct timer_list* ti;static void time原创 2017-08-04 22:04:03 · 383 阅读 · 0 评论 -
有关编译yaffs2的问题
有关编译yaffs2的问题 我是2009.10.27号下载的yaffs源代码,我没想到会有这么低级的错误,在yaffs2/utils/mkyaffs2image.c中的write_chunk()调用yaffs_PackTags2()时,yaffs_PackTags2()竟然少一个参数。 我們可使用以下的指令去抓取最新的YAFFS的程式碼:原创 2017-08-04 22:04:25 · 913 阅读 · 0 评论 -
非常好的BASH脚本编写教程
这里有个老American写的 BASH脚本编写教程,非常不错,至少没接触过BASH的也能看懂!建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne s原创 2017-08-04 22:04:28 · 11519 阅读 · 0 评论 -
kernel.config
## Automatically generated make config: don't edit# Linux kernel version: 2.6.31# Tue Dec 15 22:41:43 2009#CONFIG_ARM=yCONFIG_SYS_SUPPORTS_APM_EMULATION=yCONFIG_GENERIC_GPIO=yCONFIG_MMU=yCONFIG_NO_IOP原创 2017-08-04 22:04:42 · 553 阅读 · 0 评论 -
在驱动模块初始化函数中实现设备节点的自动创建(转)
我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。 内核中定义了struct class结构体,顾名思义,一个struct class结构体类型变量对应一个类,内核同时提供了class_c原创 2017-08-04 22:05:05 · 361 阅读 · 0 评论 -
postfix
一、 postfix概述 postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。下面一段话摘自postfix的官方站点(http://www.postfix.org):“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。在Internet世界中,大部分的电子邮件都是通过sendmail来投递的,大约原创 2017-08-04 22:05:18 · 322 阅读 · 0 评论 -
udev规则简介
udev规则简介 关于这个规则,有一篇很经典的英文说明 http://www.reactivated.net/writing_udev_rules.html udev是一种Linux2.6内核采用的/dev 目录的管理系统,它通过从sysfs获得的信息,可以提供对特定设备的固定的设备名。 sysfs是linux 2.6内核的一种新型文件系统,它提供了当前设备的基本信息。 udev的一个重要原创 2017-08-04 22:05:26 · 311 阅读 · 0 评论 -
Linux操作系统内核启动参数详细解析zt
Linux内核在启动的时候,能接收某些命令行选项或启动时参数。当内核不能识别某些硬件进而不能设置硬件参数或者为了避免内核更改某些参数的值,可以通过这种方式手动将这些参数传递给内核。 如果不使用启动管理器,比如直接从BIOS或者把内核文件用“cp zImage /dev/fd0”等方法直接从设备启动,就不能给内核传递参数或选项--这也许是我们使用引导管理器比如LILO的好处之一吧。 Linux的内原创 2017-08-04 22:05:41 · 556 阅读 · 0 评论 -
udev 文件系统制作
第一、什么是udev?这篇文章UDEV Primer给我们娓娓道来,花点时间预习一下是值得的。当然,不知道udev是什么也没关系,把它当个助记符好了,有了下面的上路指南,可以节省很多时间。我们只需要树立一个信念:udev很简单!嵌入式的udev应用尤其简单。第二、为什么udev要取代devfs?这是生产关系适应生产力的需要,udev好,devfs坏,用好的不用坏的。udev是硬件平台无关的,属于u原创 2017-08-04 22:05:47 · 358 阅读 · 0 评论 -
制作linux根文件系统
制作linux根文件系统 1、cramfs只读闪存文件系统,只读,通过建立目录,拷贝需要放到文件系统的文件到这个目录,例如建立rootfs目录的文件系统镜像命令为 mkcramfs rootfs rootfs.ramfs mkcramfs下载地址http://sourceforge.net/projects/cramfs/ 2、jfss2日志闪存文件系统,可读写,日志结构的文件系统,包含数原创 2017-08-04 22:03:41 · 297 阅读 · 0 评论 -
linux连接500k的配置
To support over 500k users, you *need* - A 64 bits hardware/kernel (AMD64, Opterons) - At least 8GB of ram - A recent linux kernel (2.6.x) About tuning, I prefer to not fully disclose them because ser原创 2017-08-04 22:00:28 · 186 阅读 · 0 评论 -
转 - 如何在Linux中添加新的系统调用
在Linux系统中,系统调用是作为一种异常类型实现的。它将执行相应的机器代码指令来产生异常信号。产生中断或异常的重要效果是系统自动将用户态切换为核心态来对它进行处理。这就是说,执行系统调用异常指令时,自动地将系统切换为核心态,并安排异常处理程序的执行。 Linux用来实现系统调用异常的实际指令是: Int $0x80 这一指令使用中断/异常向量号128(即16进制的80)将控制权转移给内核原创 2017-08-04 21:57:47 · 608 阅读 · 0 评论 -
转 - Linux - fork, pthread, and signals
fork()及signal经常运用在daemon守护神这一类常驻程式,另外像 a4c.tty/yact/chdrv这些中文终端机程式也有用到,一般如 Mozilla/Apache/Squid等大程式几乎都一定会用到。 虽然在UNIX下的程式写作,对thread的功能需求并非很大,但thread在现代的 作业系统中,几乎都已经存在了。pthread是Linux上的thread函数库,如果您 要在Li原创 2017-08-04 21:57:49 · 157 阅读 · 0 评论 -
转 - Linux - crypt
crypt基本上是One way encryption,因此它只适用於密码的使用,不适合於资料加密。 char *crypt(const char *key, const char *salt); key是使用者的密码。salt是两个字,每个字可从[a-zA-Z0-9./]中选出来,因 此同一密码增加了4096种可能性。透过使用key中每个字的低七位元,取得 56-bit关键字,这56-bit关键原创 2017-08-04 21:57:52 · 968 阅读 · 0 评论 -
了解Linux守护进程
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实现的原创 2017-08-04 21:58:04 · 204 阅读 · 0 评论 -
Linux 操作系统的内核编译内幕
内核,是一个操作系统的核心。它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。 Linux的一个重要的特点就是其源代码的公开性,所有的内核源程序都可以在/usr/src/linux下找到,大部分应用软件也都是遵循GPL而设计的,你都可以获取相应的源程序代码。 全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Li原创 2017-08-04 21:58:16 · 396 阅读 · 0 评论 -
在uclinux 中添加自己应用程序的详细过程
在uclinux 中添加自己应用程序的详细过程 ( 文中所用的路径为uclinux 安装的相对路径, 比如: /uClinux-Samsung) 编译uclinux并运行成功后, 下一步的工作就是写个最经典、最简单的程序“ hello, world” 。在uclinux下, 当然要比在普通的OS下麻烦些。 ( 我用的是ANYWHERE-Ⅱ 开发板, 不同的开发板的过程应相似) 我基本是按照原创 2017-08-04 21:58:27 · 855 阅读 · 0 评论 -
Posix线程编程zt
互斥锁尽管在Posix Thread中同样可以使用IPC的信号量机制来实现互斥锁mutex功能,但显然semphore的功能过于强大了,在Posix Thread中定义了另外一套专门用于线程同步的mutex函数。1. 创建和销毁有两种方法创建互斥锁,静态方式和动态方式。POSIX定义了一个宏PTHREAD_MUTEX_INITIALIZER来静态初始化互斥锁,方法如下: pthread原创 2017-08-04 21:58:47 · 159 阅读 · 0 评论 -
2.互斥
本文关注的是互斥原语(primitives)。建议您在继续阅读之前先回顾本系列 第 1 部分 中的下列章节: 初始化 进程 线程 共享内存 如下面的 表 1 所示,互斥提供线程间资源的独占访问控制。它是一个简单的锁,只有持有它的线程才可以释放那个互斥。它确保了它们正在访问的共享资源的完整性(最常见的是共享数据),因原创 2017-08-04 22:00:11 · 252 阅读 · 0 评论 -
1.进程、线程和共享内存
将 Win32 C/C++ 应用程序迁移到 POWER 上的 Linux,第 1 部分: 进程、线程和共享内存服务 级别: 初级 Nam Keung, 高级程序员Chakarat Skawratananond, pSeri原创 2017-08-04 22:00:16 · 1177 阅读 · 0 评论 -
mount命令详解
格式:mount [-参数] [设备名称] [挂载点] 其中常用的参数有: -a 安装在/etc/fstab文件中类出的所有文件系统。 -f 伪装mount,作出检查设备和目录的样子,但并不真正挂载文件系统。 -n 不把安装记录在/etc/mtab 文件中。 -r 讲文件系统安装为只读。 -v 详细显示安装信息。 -w 将文件系统安装为可写,为命令默认情况。 -t 指定设备的文件系统类型,常见的原创 2017-08-04 22:06:18 · 996 阅读 · 0 评论