
Linux/Unix/BSD
文章平均质量分 77
ljob2006
这个作者很懒,什么都没留下…
展开
-
gcc编译参数
gcc编译参数[linux宝库] GCC参数详解 [介绍] gcc and g++分别是gnu的c & c++编译器 gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o的文件[汇编器as] 4.连接目标代码,生成可执行程序[链接器ld] [参转载 2009-07-21 20:30:00 · 1319 阅读 · 0 评论 -
(转载)一个简单的Linux字符设备驱动程序
======== beckham ======== 相信大家看过了N次下面这篇文章: http://www.lisoleg.net/lisoleg/d ... driver-howto-1.html 引用: 如何编写Linux操作系统下的设备驱动程序 Roy G 序言 Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和 思想完全类似于其他的Unix系统,但它dos或wind原创 2009-10-09 15:22:00 · 448 阅读 · 0 评论 -
Linux下c开发 之 线程通信
1.Linux“线程” 进程与线程之间是有区别的,不过Linux内核只提供了轻量进程的支持,未实现线程模型。Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。 大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建时clone转载 2009-10-27 15:37:00 · 246 阅读 · 0 评论 -
Linux 多线程通信
Linux 多线程通信Linux 多线程通信摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,因为线程间可以共享数据结构,也就是一个全局变量可以被两个线程同时使用。不过要注意的是线程间需要做好同步,一般用mutex。可以参考一些比较新的UNIX/Linux编程的书,都会提到Posix线程编程,比如《UNIX环境高级编程(第二版)》、《UNIX系统编程》等等。 l转载 2009-10-27 16:09:00 · 434 阅读 · 0 评论 -
进程间通信的11种方法
进程间通信有以下方法Using named objects Waiting for multiple objects Waiting in a message loop Using mutex objects Using semaphore objects Using event objects Using critical section objects Using timer queues U原创 2009-10-27 17:23:00 · 280 阅读 · 0 评论 -
PV原语概念
PV原语通过操作信号量来处理进程间的同步与互斥的问题。其核心就是一段不可分割不可中断的程序。 信号量的概念1965年由著名的荷兰计算机科学家Dijkstra提出,其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。有两种实现方式:1)semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;2) semaphore的取值可正可负,负原创 2009-10-27 20:48:00 · 560 阅读 · 0 评论 -
pv 原语解释
述P,V原语的理论不得不提到的一个人便是赫赫有名的荷兰科学家 E.W.Dijkstra。如果你对这位科学家没有什么印象的话,提起解决图论中最短路径问题的Dijkstra算法应当是我们再熟悉不过的了。P,V原 语的概念以及P,V操作当中需要使用到的信号量的概念都是由他在1965年提出的。 信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信 号量的变量及对它进行的两转载 2009-10-27 20:50:00 · 3830 阅读 · 0 评论 -
深刻理解Linux进程间通信
Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。序 Linux下的进程通信手段基本上是从Unix平台上的进程通信手段继承而来的。而对Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进程间通信手段进行了系统的改进和扩充,形成了“system V IPC”,通原创 2009-10-27 17:09:00 · 238 阅读 · 0 评论 -
linux进程通信学习笔记
Linux进程间通信的方法1、管道(pipe)2、有名管道(named pipe)3、信号量4、消息队列5、信号6、共享内存7、套接字-------------------------------------------------------------------------------linux进程间通信1. 管道。 匿名一次性使用的,半双工。一个进程往输出端写管道,另一个进程从输入端转载 2009-10-27 20:42:00 · 398 阅读 · 1 评论 -
第六章 Linux下的线程
第六章 Linux下的线程 6.1线程的基本概念: Linux中的线程是轻量级线程(lightweight thread)。Linux的线程调度是由内核调度程序完成的,每个线程有自己的ID号。与进程相比,它们消耗的系统资源较少,创建较快,相互间的通信也较容易。存在于同一进程中的线程会共享一些信息,这些信息包括全局变量,进程指令,大部分数据,信号处理程序和信号设置,打开的文件转载 2009-10-27 15:46:00 · 290 阅读 · 0 评论 -
Linux下进程通信的八种方法:
Linux下进程通信的八种方法:管道(pipe),命名管道(FIFO),内存映射(mapped memeory),消息队列(message queue),共享内存(shared memory),信号量(semaphore),信号(signal),套接字(Socket).(1) 管道(pipe):管道允许一个进程和另一个与它有共同祖先的进程之间进行通信;(2) 命名管道(FIFO):类似于管道,但是原创 2009-10-27 17:04:00 · 511 阅读 · 0 评论 -
进程间通信的方式---Linux IPC小结
现在最常用的进程间通信的方式有:信号,信号量,消息队列,共享内存。 所谓进程通信,就是不同进程之间进行一些"接触",这种接触有简单,也有复杂。机制不同,复杂度也不一样。通信是一个广义上的意义,不仅仅指传递一些massege。 他们的使用方法是基本相同的,所以只要掌握了一种的使用方法,然后记住其他的使用方法就可以了。 1. 信号 在我学习的内容中,主要接触了信号来实现同步的机制,转载 2009-10-27 20:34:00 · 303 阅读 · 0 评论 -
xp上远程连接ubuntu的两种方式 及ubuntu 远程登录xp
xp上远程连接ubuntu的两种方式 昨前天突然发现实验室有一天服务器没有用,于是决定不让它闲着。开始时上面已经安装了windows server 2003,于是决定按照个ubuntu试试,开始安装了个服务器版的没有界面感觉不爽,于是用师兄的8.04版光盘安了一个。不过坐在服务器前用直接使用的话,感觉有独占服务器的感觉,呵呵。所以决定在我的xp上远程控制ubuntu,查了一上午资料,调试了几转载 2010-02-09 14:34:00 · 7491 阅读 · 2 评论 -
Linux VI使用
vi的使用之汇总 功能最强在的编辑器——vivi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必将畅行无阻、游刃有余,因为其他几种文本处理器并非UNIX标准配备。说不定别人的Linux机器没安装joe或pico,如果您不会原创 2010-02-09 10:39:00 · 735 阅读 · 0 评论 -
使用Windows远程登录 Ubuntu
使用Windows远程登录 Ubuntu一、SSH登录 1、Ubuntu默认没有安装SSH ,可以在新得利软件安装程序里,搜索SSH,标记并安装; 或者使用命令: sudo apt-get install openssh-server sudo /etc/init.d/ssh restart ssh localhost 用netstat -tl转载 2010-02-09 14:27:00 · 4534 阅读 · 0 评论 -
使用XDMCP来远程连接你的Linux图形
9月13日使用XDMCP来远程连接你的Linux图形桌面!操作环境Fedora Core 3gdm(Gnome)X-Win32 v8.0 ( http://www.starnet.com/evalkey/ )设定 XDMCPXDM 是 X Display Manager 的简称,他的功能是什么呢? 简单的说,就是管理操控 X Server转载 2010-02-09 14:57:00 · 4854 阅读 · 0 评论 -
Linux 命令总结 tar、tree、tcpdump、
Linux 命令总结 tar、tree、tcpdump、原创 2010-12-22 10:23:00 · 521 阅读 · 0 评论 -
linux 启动设置
REDHAT Linux 9.0在启动时会自动启动X-Window进入图形化操作界面。而许多Linux铁杆玩家已经习惯了在Console字符界面工作,或是有些玩家嫌X-Window启动太慢,喜欢直观快速的Console操作。 1.进入字符界面 为了在Linux启动时直接进入Console界面,我们可以编辑/etc/inittab文件。找到id:5: initdefault:这一行,原创 2009-10-09 15:11:00 · 352 阅读 · 0 评论 -
文件锁操作《精通Unix下C语言编程与项目实践》之三
6.9.3 文件锁操作 在锁机制的使用中,最常见的操作有锁的请求、释放和测试等,这些操作代码基本类似,本处将一一说明。 1. 测试锁 设计函数SeeLock,它查询文件描述符fd对应文件的锁信息,其原型为: void SeeLock(int fd, int start, int len); 本函数查询描述符fd对应文件从偏移start处开始的len字节中的锁信息,原创 2009-10-10 10:29:00 · 248 阅读 · 0 评论 -
一个简单的驱动程序例子(src)
例子1:------------------------------------------------device function----------------------------------#define __NO_VERSION__#include #include #include #include #include #include原创 2009-10-09 14:47:00 · 485 阅读 · 0 评论 -
linux和windows下面虚拟机的网络设置
From:http://blog.sina.com.cn/s/blog_44e5d6d10100eakc.html网关(geteway)可以看做是连接网络和网络的桥梁,网关的概念很广,这里为了简化起见,我们暂且认为它和路由器是同一个概念。路由器(router)是一种连接网络和网络,并选择IP数据包传送的路径的一台特殊计算机。很多情况下网关的概念等同于路由器。3,网络中电脑的IP地址有何要求?转载 2009-08-29 11:52:00 · 2330 阅读 · 1 评论 -
linux下c编程起步一:掌握gcc基本用法
初学时最好从命令行入手,这样可以熟悉从编写程序、编译、调试和执行的整个过程。编写程序可以用vi或其它编辑器编写。编译则使用gcc命令。要往下学习首先就得熟悉gcc命令的用法。gcc命令提供了非常多的命令选项,但并不是所有都要熟悉,初学时掌握几个常用的就可以了,到后面再慢慢学习其它选项,免得因选项太多而打击了学习的信心。一. 常用编译命令选项假设源程序文件名为test.c。1. 无选项编译链接用法:原创 2009-08-29 11:58:00 · 333 阅读 · 0 评论 -
Shell编程基础
Shell编程基础出自Ubuntu中文本文作者:Leal 授权许可: 创作共享协议 GNU自由文档许可证 编辑人员:FireHare, Dbzhang800 我们可以使用任意一种文字编辑器,比如nedit、kedit、emacs、vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): # !/bin/sh...原创 2009-09-18 11:28:00 · 225 阅读 · 0 评论 -
介绍linux Shell编程入门
本文结合大量实例阐述如何编写一个shell脚本。 为什么要进行shell编程 在Linux系统中,虽然有各种各样的图形化接口工具,但是sell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。 下面,让我们一起来看看转载 2009-09-18 11:33:00 · 288 阅读 · 0 评论 -
Linux网络驱动程序编写(二)
二.Linux系统网络设备驱动程序 2.1 网络驱动程序的结构 所有的Linux网络驱动程序遵循通用的接口。设计时采用的是面向对象的方法。一个设备就是一个对象(device 结构),它内部有自己的数据和方法。每一个设备的方法被调用时的第一个参数都是这个设备对象本身。这样这个方法就可以存取自身的数据(类似面向对象程序设计时的this引用)。一个网络设备最基本的方法有初始化、发送和接转载 2009-09-27 20:01:00 · 234 阅读 · 0 评论 -
Linux网络驱动程序编写(四)
三.编写Linux网络驱动程序中需要注意的问题 3.1 中断共享 Linux系统运行几个设备共享同一个中断。需要共享的话,在申请的时候指明共享方式。系统提供的request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct原创 2009-09-27 20:27:00 · 244 阅读 · 0 评论 -
如何编写Linux设备驱动程序
序言 Linux是Unix操作系统的一种变种,在Linux下编写驱动程序的原理和思想完全类似于其他的Unix系统,但它dos或window环境下的驱动程序有很大的区别。在Linux环境下设计驱动程序,思想简洁,操作方便,功能也很强大,但是支持函数少,只能依赖kernel中的函数,有些常用的操作要自己来编写,而且调试也不方便。本人这几周来为实验室自行研制的一块多媒体卡编制了驱动程序,获得了一转载 2009-09-27 20:48:00 · 208 阅读 · 0 评论 -
linux虚拟网络设置
------------------------------host-only------------------------------------------------------------------------[root@localhost root]#[root@localhost root]# ping www.baidu.comPING www.a.shifen.com (1原创 2009-09-16 21:24:00 · 550 阅读 · 0 评论 -
基于Linux操作系统上的C编程与内核导读
动态内存的使用 上一节的方法虽然可以避免溢出的问题,但会导致数据的丢失,下面我们就来学习一种更好的方法-动态内存的使用。由于动态内存是完全由用户自行分配使用的,因此需要用到一些系统调用,下面我们就分别学习它们。 首先我们需要的是动态内存分配的系统调用calloc()函数,其函数原型为: #include void *malloc(size_t size); void *ca原创 2009-09-29 16:15:00 · 208 阅读 · 0 评论 -
标准I/O重定向《精通Unix下C语言编程与项目实践》之七
11.2.4 连接标准I/O的管道模型 管道在shell中最常见的应用是连接不同进程的输入输出,比如使A进程的输出变成B进程的输入等。考察shell命令“cat pipe3.c | more”,进程“more”使用了进程“cat pipe3.c”的输出。 例1. 分别重定向标准输入、标准输出、标准错误输出到文件描述符fd1、fd2和fd3中。 答:复制文件描述符fd1到文件描述原创 2009-09-29 15:59:00 · 319 阅读 · 0 评论 -
Linux编程:网络设备驱动详解
在此仅仅讨论网络设备驱动的一般写法,有关硬件部分的相关代码由于硬件规格不同,予以省略。有什么地方错误,或补充,欢迎大家提出。 1, 驱动模块的加载和卸载 如果网络设备(包括wireless)是PCI规范的,则先是向内核注册该PCI设备(pci_register_driver),然后由pci_driver数据结构中的probe函数指针所指向的侦测函数来初始化该PCI设备,并且同时注册和转载 2009-09-30 16:28:00 · 282 阅读 · 0 评论 -
Linux网络驱动程序编写(一)
Linux网络驱动程序编写(一)工作需要写了我们公司一块网卡的Linux驱动程序。经历一个从无到有的过程,深感技术交流的重要。Linux作为挑战微软垄断的强有力武器,日益受到大家的喜爱。真希望她能在中国迅速成长。把程序文档贴出来,希望和大家探讨Linux技术和应用,促进Linux在中国的普及。 本文可随意转载,但请不要在盈利性出版物上刊登。 一.Linux系统设备驱动程序概述转载 2009-09-27 19:50:00 · 215 阅读 · 0 评论 -
Linux网络驱动程序编写(三)
2.4 常用的系统支持 2.4.1 内存申请和释放 include/linux/kernel.h里声明了kmalloc()和kfree()。用于在内核模式下申请和释放内存。 void *kmalloc(unsigned int len,int priority); void kfree(void *__ptr); 与用户模式下的malloc()不同,kmalloc(原创 2009-09-27 20:19:00 · 218 阅读 · 0 评论 -
如何编写Linux设备驱动程序(代码)
相信一些人编过www.top-e.org/jiaoshi/html/这个网站的设备驱动,但编译之后,错误和警告多多。主要原因是因为linux版本不同。现,在Linux2.6.13编译,然后下到友善之臂s3c2440a上运行。 按照这网站上的要求,编译之后,错误和警告多,主要显示: warning: `verify_area is deprecated (declared at原创 2009-09-30 20:40:00 · 393 阅读 · 0 评论 -
gdb基本用法
http://phi.sinica.edu.tw/~tyuan/pcfarm.old/manuals/gnu/gdb_basic.html GDB的使用 当程序出错并产生core 时 快速定位出错函数的办法 gdb 程序名 core文件名(一般是core,也可能是core.xxxx) 调试程序使用的键 r run 运行.程序还没有运行前使用 c cunti原创 2009-10-08 21:29:00 · 217 阅读 · 0 评论 -
Linux下gdb用法简单介绍
ps:前不久好像说过linux的ARM-CPU结构体系。最近一直在搬家,很忙,上网时间少,也没写什么文章,也不知道写点什么,因为很多东西baidu一大堆。今天随便补充点儿东西!B9n中国红客联盟-全球最大的红客组织B9n中国红客联盟-全球最大的红客组织makefile的一些用法:再了解makefile之前,希望大家好好了解一下vi的用法,有兴趣也可了解一下Emacs的高级用法,掌握一下GCC的用法原创 2009-10-08 21:33:00 · 436 阅读 · 0 评论 -
Linux下GCC编程四个过程
Linux下GCC编程四个过程转载 2010-12-22 16:54:00 · 370 阅读 · 0 评论