易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : linux

嵌入式Linux下串口编程

嵌入式Linux下串口编程
一、配置内核
在嵌入式Linux下进行串口编程之前,先在内核中配置串口部分,如下:
Device Drivers--->
       character devices--->
              Serial drivers--->
                     <*>Samssung S3C2440/S3C2442 Serial port support
二、应用程序
C文件:
uart_init.c:打开设备、初始化串口(设置参数)
main.c:测试串口读写
头文件:
uart_init.h
Makfile
 
 
uart_init.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <error.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <termios.h>
 
int open_termios(char *dev)
{
       int fd = -1;
       if(-1 == (fd = open(d ......

Linux内核的同步机制(一):原子操作

原子操作:UP和SMP的异同
原子操作是不可分割的,在执行完毕不会被任何其它任务或事件中断。在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是"原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_and_clear等指令用于临界资源互斥的原因。但是,在对称多处理器(Symetric Multi-Processor)结构中就不同了,由于系统中有多个处理器在独立地运行,即使能在单条指令中完成的操作也有可能受到干扰。我们以decl(递减指令)为例,这是一个典型的"读-改-写"过程,涉及两次内存访问。设想在不同CPU运行的两个进程都在递减某个计数值,可能发生的情况是:
1. CPU A(上的进程,以下同)从内存单元把当前计数值(2)装载进它的寄存器中;
2. CPU B从内存单元把当前计数值(2)装载进它的寄存器中。
3. CPU A在它的寄存器中将计数值递减为1;
4. CPU B在它的寄存器中将计数值递减为1;
5. CPU A把修改后的计数值(1)写回内存单元。
6. CPU B把修改后的计数值(1)写回内存单元。
我们看到,内存里的计数值应该是0,然而它却是1。如果该计数值是一个共享资源的引用计数,每个进程都在递减后把该值与0 ......

Linux第一步——安装Linux

其实文章算不上原创,是碰到问题的时候上网东搜搜西搜搜的内容,算是借花献佛了吧,感谢原创者。
1. 安装虚拟机,我用的是一个绿化版。新建虚拟机的过程如下:
摘自:http://blog.163.com/zongbin521/blog/static/10217990200981094622635/
我们以创建LINUX系统为例。
第一步:启动VMware,在其主界面“主页”标签页中点击“新建虚拟机”按钮打开新建向导。
第二步:单击“下一步”按钮,进入虚拟机配置界面,这里有两个选择:一是“典型”方式,它根据虚拟机的用途自动调整配置;二是“自定义”方式,它允许用户自行设置虚拟机的主要参数。典型方式要比自定义方式简单,但缺少一定的灵活性。方便起见,这里我们选择典型方式。
第三步:单击“下一步”按钮进入虚拟机操作系统选择界面,可以看到Windows、Linux、Novell等多种不同的系统,这里我们点选“Linux”。Linux又分为多种版本,笔者手头有一套红帽子Linux 8.0,自然要选择“Red Hat Linux”项了。
第四步:单击“下一步”,在接下来的界面中,可以为这个新的虚拟机取一个名称(本例为“Red Hat Linux”),并在& ......

linux驱动模块


工作队列(work queue)是另外一种将工作推后执行的形式 ,它和我们前面讨论的所有其他形式都有不同。工作队列可以把工作推后,交由一个内核线程去执行,也就是说,这个下半部分可以在进程上下文中执行。这样,通过工作队列执行的代码能占尽进程上下文的所有优势。最重要的就是工作队列允许被重新调度甚至是睡眠。
那么,什么情况下使用工作队列,什么情况下使用tasklet。如果推后执行的任务需要睡眠,那么就选择工作队列。如果推后执行的任务不需要睡眠,那么就选择tasklet。另外,如果需要用一个可以重新调度的实体来执行你的下半部处理,也应该使用工作队列。它是唯一能在进程上下文运行的下半部实现的机制,也只有它才可以睡眠。这意味着在需要获得大量的内存时、在需要获取信号量时,在需要执行阻塞式的I/O操作时,它都会非常有用。如果不需要用一个内核线程来推后执行工作,那么就考虑使用tasklet。
 
1.      工作、工作队列和工作者线程
如前所述,我们把推后执行的任务叫做工作(work),描述它的数据结构为work_struct,这些工作以队列结构组织成工作队列(workqueue),其数据结构为workqueue_struct,而工作线程就是负责执行 ......

Linux 服务器集群系统实现方案详解

一、集群的基本概念
有一种常见的方法可以大幅提高服务器的安全性,这就是集群。
Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可靠性的服务。
大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。
一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。
Cluster内各节点服务器通过一内部局域网相互通讯。当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上任一故障发生时,客户将能很快连接到新的应用服务上。
二、集群的硬件配置
镜像服务器双机
集群中镜像服务器双机系统是硬件配置最简单和价格最低廉的解决方案,通常镜像服务的硬件配置需要两台服务器,在每 ......

Linux之父捧场Windows 7竖起大拇指

10月24日消息,据国外媒体报道,Linux之父李纳斯·托瓦兹(Linus Torvalds)周四为Windows 7捧场,并竖起了大拇指。
 
 
 
周四,托瓦兹在日本出席Linux研讨会,在会议休息期间,他跑到了附近的Windows 7零售摊位,并对着镜头为Windows 7竖起了大拇指。
 
无论是真心祝福,还是寓含讽刺,相信这张照照片会载入史册
 
原始地址:http://tech.163.com/09/1024/09/5MCMPHI200093QEM.html ......
总记录数:5772; 总页数:962; 每页6 条; 首页 上一页 [876] [877] [878] [879] 880 [881] [882] [883] [884] [885]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号