Linux
溪孟羽
这个作者很懒,什么都没留下…
展开
-
pipe无名管道通信
由于fork创建子进程与父进程拥有相同的虚拟存储器,所以在父子进程写相应段之前,写时拷贝没有出现,存储器映射到同一段物理内存。从而子进程拥有父进程的所有上下文场景:如全局与局部变量、打开的文件句柄,共享内存、消息等同步对象等。pipe创建了2个文件句柄,在调用fork后,文件句柄被复制进了子进程中,由于上诉黑体字,在子进程对管道的操作与在父进程中相通。如:pipe产生句柄pipe[0]原创 2014-04-30 18:22:52 · 492 阅读 · 0 评论 -
linux tftp设置 + uboot下tftp下载…
linux tftp设置:1,安装tftp服务端(在linux订制时可设置),如要在linux中使用tftp命令,还需下载tftp客户端,也就是没有server字符的rpm。默认目录/tftpboot。2,修改tftp配置文件,/etv/xinted.d/tftp。3,重启tftp,/etc/init.d/xinet.d restart。4,查看tftp是否启动成功。netstat -a原创 2014-04-30 18:23:31 · 608 阅读 · 0 评论 -
Tlist操作
vim切换至Tlist界面:ctrl+w原创 2014-04-30 18:24:06 · 557 阅读 · 0 评论 -
进程相关ID
转载:http://my.unix-center.net/~Simon_fu/?p=607本人对Unix下的进程的实际用户ID和有效用户ID一直都比较迷惑,没有完全搞清楚。最近温习APUE(《高级UNIX环境编程》》),),终于对这两个概念有了一个清晰的认识,看来经典著作绝对需要温习多遍,才能领略其中的奥秘。 在Unix进程中涉及多个用户ID和用户组ID,包括如下:1、实际用户I原创 2014-04-30 18:24:08 · 518 阅读 · 0 评论 -
-std=c99带来问题
今天用-std=c99编译c文件,内容是信号这一块的,包含了sigprocmask.编译时发现总是显示sigset_t类型没有声明,函数中的3个状态的无法找到。后来发现把-std=c99去掉就行了。不知道有什么区别原创 2014-04-30 18:24:16 · 4407 阅读 · 0 评论 -
守护进程
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数服务器都是用守护进程实原创 2014-04-30 18:24:44 · 325 阅读 · 0 评论 -
linux下mount
命令格式:mount [-t vfstype] [-o options]device dir1、-t vfstype指定文件系统类型,通常不必指定。mount会自动选择正确的类型。常用的类型有:linux文件网络共享:nfs2、-o options描述设备或档案的挂接方式。常用参数有:loop:用来把一个文件当成硬盘分区挂接上系统ro:采用只读方式挂接设备rw:采用读写方式挂接原创 2014-04-30 18:25:03 · 594 阅读 · 0 评论 -
Core文件的分析
原文地址:什么是Core Dump?Core的意思是内存, Dump的意思是扔出来, 堆出来.开发和使用Unix程序时, 有时程序莫名其妙的down了, 却没有任何的提示(有时候会提示core dumped). 这时候可以查看一下有没有形如core.进程号的文件生成, 这个文件便是操作系统把程序down掉时的内存内容扔出来生成的, 它可以做为调试程序的参考.core dump又转载 2014-04-30 19:07:47 · 707 阅读 · 0 评论 -
Linux下一些命令
dmesg 可查看原创 2014-05-02 22:06:27 · 408 阅读 · 0 评论 -
ubuntu14.04下minicom
系统环境: Ubuntu 11.041.下载安装minicomsudo apt-get install minicom2.运行minicom运行“sudo minicom -s”命令进入配置界面(或者直接运行“sudo minicom”, 然后同时按下“回车+A”,再按Z,最后按O,同样进入配置界面)+----[配置]--------+| 文件名和路径转载 2014-05-02 22:04:47 · 873 阅读 · 0 评论 -
ubuntu14.04体验记
1, 卸载ibus后system setting中相关图标消失ibus卸载时会将system setting中的一些使用程序附带删除(但是没有卸载)此时要重新安装ibus :sudo apt-get install ibus linux-generic: sudo apt-get install linux-generic原创 2014-04-30 18:55:19 · 810 阅读 · 0 评论 -
epoll详解
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 ep转载 2014-05-12 13:57:48 · 491 阅读 · 0 评论 -
位置无关代码
首先是书:《深入理解计算机系统》《程序员的自我休养》转载 2014-05-20 09:54:36 · 1027 阅读 · 0 评论 -
vi常用命令
光标移动:Ctrl+f 向文件尾翻一屏 Ctrl+b 向文件首翻一屏n+ 光标下移n行 n- 光标上移n行0(零)光标移至行首 $ 光标移至行尾^ 光标移至行首第一个单词nG 光标移至n行行首 :n 光标移至n行行首gg原创 2014-04-30 18:23:55 · 604 阅读 · 0 评论 -
进程和线程的区别
地址空间:线程:无单独地址空间,共享内存,一个线程死掉等于整个进程死掉。线程只是一个进程中的不同执行路路径。线程有自己的堆栈和局部变量。进程:有独立的地址空间(写时拷贝,共享正文),一个进程崩溃后在保护模式下不会对其他进程产生影响。系统开销:线程:占用资源少,所以切换时对资源的处理也少,耗费资源少。并发性高。进程:占用资源多,切换时资源耗费大。原创 2014-04-30 18:24:33 · 416 阅读 · 0 评论 -
我的vim配置
" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime" you can find below. If you wish to change an原创 2014-04-30 21:11:05 · 441 阅读 · 0 评论 -
VMware网络配置详解
原文地址:VMware网络配置详解作者:赖因斯坦VMware网络配置详解安装好虚拟机以后,在网络连接里面可以看到多了两块网卡:其中VMnet1是虚拟机Host-only模式的网络接口,VMnet8是NAT模式的网络接口,这些后面会详细介绍。选择虚拟机网络模式方法如下,单击“Edit virtual machine settings”,如图所示:然后在“Hardware”选项卡中选转载 2014-04-30 18:23:29 · 565 阅读 · 0 评论 -
linux samba服务器设置
1,安装samba(在配置linux时可选上)2,创建samba用户(smbpasswd -a用户);3,配置samba配置文件(/etc/samba/smb.conf),添加共享目录(不添加时,只共享/home下samba用户的目录)4,重启samba(service smb restart);5,关闭linux防火墙(setup,图形界面设置,或者iptables设置,servi原创 2014-04-30 18:23:26 · 483 阅读 · 0 评论 -
mkfifo函数创建有名管道
pipe创建的管道只能在具有共同祖先的进程间通信,而mkfifo能在不相关的进程间交换数据。通俗举例来说,一个在一个c文件中通信,一个可在多个c文件中通信。命名管道打开的规则:为读打开FIFO:O_NONBLOCK disable:阻塞直到有相应进程为写而打开FIFOO_NONBLOCK enable:立刻返回成功为写打开FIFO:O_NONBLOCK disable:阻塞直到有相应原创 2014-04-30 18:22:54 · 1414 阅读 · 0 评论 -
共享内存
共享内存应用基本步骤:1,用shmget函数创建共享内存2,用shmat映射共享内存示例程序:#include#include#include#include#include#include#include#define SIZE 1024*4int main( int argc, char **argv ){ char*addr;// charbu原创 2014-04-30 18:23:03 · 433 阅读 · 0 评论 -
多线程编程1
一组并发线程运行在一个进程的上下文中。每个线程都有他自己独立的线程上下文,包括线程ID,栈,栈指针,程序计数器,条件码和通用的目地寄存器。每个线程和其他线程一起共享进程上下文的剩余部分。这包括整个用户虚拟地址(由只读文本,读写数据,堆,以及所有共享库代码和数据区域组成),线程同样共享打开的文件集合。(在线程中定义的cstatic属性的本地变量虽然不在栈中管理,但是他的作用范围和普通的局部变量一样原创 2014-04-30 18:23:07 · 400 阅读 · 0 评论 -
多线程编程2
线程终止:void pthread_exit(void *rval_ptr);调用进程阻塞直到指定进程结束:int pthread_join(pthread_t thread, void**rval_ptr);可以用第二个函数获取线程的终止状态#include#includevoid *tret;pthread_t tid1, tid2;void *thr_fn1(原创 2014-04-30 18:23:09 · 389 阅读 · 0 评论 -
SecureCRT无法输入
1,选项2,会话选项3,连接4,串行5,去掉RTS/CTS的钩原创 2014-04-30 18:23:48 · 737 阅读 · 0 评论 -
Vi 配置文件中的map
map F5(箭括号中) :set nu! CR(箭括号中)此句可用F5控制行号显示与否原创 2014-04-30 18:23:57 · 558 阅读 · 0 评论 -
关于对‘pthread_create’未定义的引…
关于对‘pthread_create’未定义的引用解决方法create.c:(.text+0x2a):对‘pthread_create’未定义的引用开始搜索的时候,知道缺少连-lpthread该库支持,使用:xs@vm:~/function/september/thread$ gcc -lpthread create.c仍然报出一样的错误。后面man gcc才知道Usage: gcc原创 2014-04-30 18:24:29 · 533 阅读 · 0 评论 -
fork写时拷贝
当fork函数被当前进程调用时,内核为新进程创建各种数据结构,并分配它一个唯一的PID,为了给这个新进程创建虚拟存储器,它创建了当前进程的mm_struct、区域结构和页表的原样拷贝。它将两个进程中的每个页面都标记为只读,并将两个进程中的每个区域结构都标记为私有的写时拷贝。当fork在新进程中返回时,新进程现在的虚拟存储器刚好和调用fork时存在的虚拟存储器相同(就是父进程运行到fork时的虚原创 2014-04-30 18:22:48 · 670 阅读 · 0 评论 -
signal信号通信
每个进程只属于一个进程组,进程组由一个正整数进程组ID来标识。int kill(pid_t pid, int sig);kill函数用于向进程发送信号,当pid>0,kill发送sig给进程pid;当pidunsigned int alarm(unsigned int secs);alarm函数用于在secs妙内发送一个SIGALRM信号给调用进程。对alarm的调用将取消待处理闹钟,并原创 2014-04-30 18:22:56 · 548 阅读 · 0 评论 -
处理多个信号时产生的问题
#include#include#include#include#includevoid handler( int sig ){ pid_t pid; if( (pid=waitpid(-1, NULL, 0)) perror( "waitpid error" ); printf("handler reaped child %d\n"原创 2014-04-30 18:22:58 · 750 阅读 · 0 评论 -
消息队列
消息队列操作基本步骤:1,key_t ftok( const char *fname, int id )获取键值2,int msgget( key_t key, int flag )打开或创建一个新队列创建IPC结构条件(满足一个):一:key是IPC_PRIVATE二:key当前未与特定类型的IPC结构相结合,并且flag中指定了IPC_CREAT位3,int msgsend(原创 2014-04-30 18:23:05 · 364 阅读 · 0 评论 -
多线程编程3
线程清理处理函数:void pthread_cleanup_push(void (*rtn)(void *), void *arg );设置清理函数void pthread_cleanup_pop(int execute);execute为0,清理函数将不被调用;不为0则调用清理函数运行的三种情况:1,调用pthread_exit时2,响应取消请求时3,用非0 execute参数调原创 2014-04-30 18:23:11 · 367 阅读 · 0 评论 -
TCP网络编程
TCP网络编程基本模型:UNIX环境高级编程435页。程序例程:服务器:#include#include#include#include#include#include#define portnumber 3333int main( int argc, char **argv ){ int sockfd; int new_fd;原创 2014-04-30 18:23:13 · 378 阅读 · 0 评论 -
(转载) 关于nor flash,nand flash…
SDRAM(Synchronous DynamicRandom AccessMemory,同步动态随机存储器)也就是通常所说的内存。内存的工作原理、控制时序、及相关控制器的配置方法一直是嵌入式系统学习、开发过程中的一个难点。我们从其硬件的角度来分析其原理,然后再引出SDRAM的驱动编写过程。内存是代码的执行空间,以PC机为例,程序是以文件的形式保存在硬盘里面的,程序在运行之前先由操作系统装原创 2014-04-30 18:23:24 · 1048 阅读 · 0 评论 -
shell学习
$*,$@,$#区别:./test.sh a b c$* -->"a b c"$@-->"a" "b" "c"$ #-->3原创 2015-02-08 10:35:55 · 446 阅读 · 0 评论