随笔分类 -  Linux

嵌入式系统的组成
摘要:整个嵌入式系统而言,可以分为三个部分1.uboot 2.kernel 3.文件系统。其中kernel中以VFS去支持各种文件系统,如yaffs,ext3,cramfs等等。yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。在内核中以... 阅读全文

posted @ 2016-09-06 12:31 sichenzhao 阅读(540) 评论(0) 推荐(0)

Unable to locate package解决办法
摘要:最近在BBB板上安装软件时,apt-get命令无法安装软件,出现Unable to locate package,原因在于软件源未更新,利用以下命令可解决:sudo apt-get update 阅读全文

posted @ 2016-08-25 20:26 sichenzhao 阅读(1634) 评论(0) 推荐(0)

Linux 的nameserver-域名服务器
摘要:DNS(Domain Name System)是域名解析服务器的意思,它在互联网的作用是把域名转换成为网络可以识别的IP地址。当用户在浏览器中输入网址域名时,首先就会访问系统设置的DNS域名解析服务器(通常由ISP运营商如电信、网通提供)。如果该服务器内保存着该域名对... 阅读全文

posted @ 2016-08-23 22:25 sichenzhao 阅读(1056) 评论(0) 推荐(0)

Unix环境高级编程-文件和目录(2)
摘要:1.用stat函数替换lstat函数,如果命令行参数之一是符号链接,会发生什么变化?lstat和stat函数的区别是当命名的文件是一个符号链接时,lstat返回该符号链接的有关信息,而不是由该符号链接引用的文件的信息,也就是说lstat不跟随符号链接,而stat函数跟... 阅读全文

posted @ 2016-08-22 17:39 sichenzhao 阅读(135) 评论(0) 推荐(0)

unix环境高级编程-输入和输出
摘要:文件描述符:这通常是一个小的非负整数,内核用以标识一个特定进程正在访问的文件,当内核打开一个现有文件或创建一个新文件时,都返回一个文件描述符,在读写这个文件时,可以使用这个文件描述符标准输入、标准输出和标准错误每当运行一个新程序时,所有的shell都为其打开三个文件描... 阅读全文

posted @ 2016-08-08 23:46 sichenzhao 阅读(121) 评论(0) 推荐(0)

unix环境高级编程-进程间通信(2)
摘要:函数popen和pclose:常见的操作是创建一个连接到另一个进程的管道,然后读其输出或向其输入端发送数据,这两个函数实现的操作是:创建一个管道,fork一个子进程,关闭未使用的管道端,执行一个shell运行命令,然后等待命令终止。函数popen执行fork,调用ex... 阅读全文

posted @ 2016-08-08 21:36 sichenzhao 阅读(142) 评论(0) 推荐(0)

unix环境高级编程-进程间通信
摘要:之前说明了进程控制原语,但是这些进程之间交换信息的唯一途径就是传送打开的文件,可以由fork或exec传送,也可以通过文件系统来传送,接下来说明进程之间相互通信的其他技术-进程间通信(IPC)管道:管道是unix中IPC最古老的形式,管道有以下几点局限:1.历史上是半... 阅读全文

posted @ 2016-08-06 14:52 sichenzhao 阅读(116) 评论(0) 推荐(0)

unix环境高级编程-高级IO(2)
摘要:函数readv和writev:这两个函数用于在一次函数调用中读、写多个非连续缓冲区。有时也将这两个函数成散布读(scatter read)和聚集写(gather write)函数readn和writen:管道、FIFO以及某些设备(终端和网络)有以下性质:1.一次re... 阅读全文

posted @ 2016-08-05 20:32 sichenzhao 阅读(95) 评论(0) 推荐(0)

unix环境高级编程-高级IO
摘要:非阻塞IO:之前曾经把系统调用分为两类,低速系统调用和其他,低速系统调用可能会使进程永远阻塞的一类系统调用。包括:某些文件类型(终端设备、读管道)的数据并不存在,读操作可能会使调用者永远阻塞。如果数据不能被相同的文件类型立即接受,写操作可能会使调用者永远阻塞对已经加上... 阅读全文

posted @ 2016-08-05 15:24 sichenzhao 阅读(113) 评论(0) 推荐(0)

unix环境高级编程-守护进程
摘要:守护进程(daemon)是生存期长的一种进程,常常在系统引导装入时启动,仅在系统关闭时终止,因为它们没有控制终端,unix有很多守护进程,它们执行日常事务活动。守护进程的特征:执行指令:ps -zxj //a显示其他用户拥有的进程状态,-x显示没有终端控制的进程状态... 阅读全文

posted @ 2016-08-04 15:17 sichenzhao 阅读(126) 评论(0) 推荐(0)

unix环境高级编程-线程控制(2)
摘要:重入:线程在遇到重入问题时与信号处理程序是类似的,在两种情况下,多个控制线程在相同时间有可能调用相同的函数如果一个函数在相同的时间点可以被多个线程安全的调用,就认为该函数是线程安全的。除了下表的函数,其他函数都是线程安全的如果一个函数对多个线程来说是可重入的,就称这个... 阅读全文

posted @ 2016-08-03 20:13 sichenzhao 阅读(124) 评论(0) 推荐(0)

unix环境高级编程-线程控制(1)
摘要:线程控制:这些限制的使用是为了增强应用程序在不同操作系统实现之间的可移植性。线程属性:pthread接口允许我们通过设置每个对象关联的不同属性来细调线程和同步对象的行为。1.每个对象与它自己类型的属性对象进行关联(线程与线程属性关联,互斥量和互斥量关联等),一个属性对... 阅读全文

posted @ 2016-08-02 21:50 sichenzhao 阅读(129) 评论(0) 推荐(0)

unix环境高级编程-线程(2)
摘要:线程终止:如果进程中的任意线程调用了exit、_Exit或者_exit,那么整个进程就会终止,与此类似,如果默认的动作是终止进程,那么发送到线程的信号就会终止整个进程单个进程可以通过三种方式退出,因此可以在不终止整个进程的情况下,停止它的控制流1.线程可以简单地从启动... 阅读全文

posted @ 2016-08-02 20:00 sichenzhao 阅读(120) 评论(0) 推荐(0)

unix环境 高级编程-线程(1)
摘要:线程概念:典型的unix可以看成只有一个控制线程:一个进程在某一时刻只能做一件事,有了多个控制线程之后,在程序设计时就可以把进程设计成在某一时刻能够不止做一件事,每个线程处理各自独立的任务,这种方法有很多好处:1.通过为每种事件类型分配单独的处理线程,简化处理异步事件... 阅读全文

posted @ 2016-08-01 21:41 sichenzhao 阅读(123) 评论(0) 推荐(0)

unix环境高级编程-信号(2)
摘要:函数kill和raise:kill函数将信号发送给进程或进程组,raise函数则运行进程向自身发送信号。kill的pid参数有以下四种不同情况:pid>0,将该信号发送给进程ID为pid的进程pid==0,将该信号发送给与发送进程属于同一进程组的所有进程。pidint... 阅读全文

posted @ 2016-08-01 21:07 sichenzhao 阅读(133) 评论(0) 推荐(0)

unix环境高级编程-信号(1)
摘要:信号是软件中断,信号提供了一种处理异步事件的方法每个信号都有一个名字,这些名字都以3个字符SIG开头,例如SIGABRT是夭折信号,当进程调用abort函数时产生这种信号。在头文件中,信号名都被定义为正整数常量。不存在编号为0的信号,这种信号叫做空信号。很多条件会产生... 阅读全文

posted @ 2016-07-31 14:40 sichenzhao 阅读(107) 评论(0) 推荐(0)

unix环境高级编程-进程关系
摘要:会话:是一个或多个进程组的集合。通常是由shell管道将几个进程编成一组,比如 proc1 | proc2 &进程调用setsid函数建立一个新会话。如果调用此函数的进程不是一个进程组的组长,此函数创建一个新会话,该进程会变成新会话的的会话首进程(session le... 阅读全文

posted @ 2016-07-31 11:46 sichenzhao 阅读(147) 评论(0) 推荐(0)

unix环境高级编程-读书笔记(7)
摘要:终端登陆:1BSD终端登陆:当 系统自举时,内核创建进程ID为1的进程,也就是init进程,init进程使系统进入多用户模式,init读取文件/etc/ttys,对每一个允许登陆的终端,init调用一次fork,所生成的子进程则exec getty程序。getty对终... 阅读全文

posted @ 2016-07-30 23:44 sichenzhao 阅读(86) 评论(0) 推荐(0)

Unix环境高级编程-进程控制(1)
摘要:用户ID和组ID:在设计应用时,总是试图使用最小特权(least privilege)模型,依据此模型,程序应当只具有为完成给定任务所需的最小权限,可用setuid函数设置实际用户ID和有效用户ID。用setgid函数设置实际组ID和有效组ID。下表总结了更改3个用户... 阅读全文

posted @ 2016-07-30 22:10 sichenzhao 阅读(109) 评论(0) 推荐(0)

unix环境高级编程-进程环境(2)
摘要:函数getrlimit和setrlimit:每个进程都有一组资源限制,可以用这两个函数查看修改。在更改资源限制时要注意:1.任何进程都可将一个软限制值更改为小于或等于其硬限制值2.任何进程都可降低其硬限制值,但必须大于等于其软限制值3.只有超级用户可以提高硬限制值两个... 阅读全文

posted @ 2016-07-29 17:55 sichenzhao 阅读(113) 评论(0) 推荐(0)

导航