- 博客(18)
- 资源 (4)
- 收藏
- 关注
原创 Ubuntu Application List
0.0 为知笔记(国产精品)可以同步多台设备,速度快,替代Evernote最佳品!$ sudo add-apt-repository ppa:wiznote-team#添加官方源$ sudo apt-get update #更新源$ sudo apt-getinstall wiznote #安装为知笔记0.1 tearmviewer登录远端电脑首选!http:/
2016-10-25 23:39:58 2662
转载 Ctrl+Z 后恢复进程到前台
转载自:http://blog.chinaunix.net/uid-10219166-id-2968756.html----------- 以下是原文 假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,终止这个程序,然后可以看到系统提示: [1]+ Stopped /root/bin/rsync.sh 然后我
2016-01-26 15:06:41 3294
转载 linux下文件操作API:write/read/fcntl/ioctl/mmap
1. write函数介绍(1)文件I/O与标准I/O之争: 根据《UNIX环境高级编程》中介绍,文件I/O与准备I/O之间的差别主要有以下几点:其一,文件I/O是在系统的内核中实现的,而标准I/O函数则提供了文件I/O函数的一个完整的带缓冲的替代品。因此说,文件I/O是一种较低级的I/O操作函数,而标准I/O则是一种相对较高的I/O。标准I/O函数将打开的文件模型抽象成“
2016-01-26 13:49:31 1141
转载 如何看待操作系统的用户空间和内核空间?
作为中央核心处理单元的CPU,除了生产工艺的不断革新进步外,在处理数据和响应速度方面也需要有权衡。稍有微机原理基础的人都知道Intel X86体系的CPU提供了四种特权模式ring0~ring3,其中ring0特权最高,ring3的特权最低,之所以要做这样的区分一个主要目的是保护资源,通俗来讲要保护的资源无非就是“内存、I/O端口以及执行特殊机器指令的能力”。任何一个时刻,x86 CPU都是在一定
2016-01-20 15:47:08 416
转载 揭开网络编程常见API的面纱【下】
分类: LINUXLinux网络编程数据收发的API流程分析 只要把数据在协议栈中的流动线路和脉络弄清楚了,关于协议栈的实现部分,理解起来就轻松多了。在网络编程章节的数据接收过程中,我们主要介绍过read()、recv()、recvfrom()还有一个recvmsg()没介绍到,今天我们就来看一下这几个API函数到底有什么差别。数据接收
2016-01-20 15:46:07 347
转载 揭开网络编程常见API的面纱【上】
分类: LINUXLinux网络编程API函数初步剖析 今天我们来分析一下前几篇博文中提到的网络编程中几个核心的API,探究一下当我们调用每个API时,内核中具体做了哪些准备和初始化工作。 1、socket(family,type,protocol) 当我们在开发网络应用程序时,使用该系统调用来创建一个套接字。该API所做的工作如下所
2016-01-20 15:45:20 325
转载 Linux网络编程:原始套接字的魔力【续】
分类: LINUX如何从链路层直接发送数据帧 本来以为这部分都弄完了,结果有朋友反映说看了半天还是没看到如何从链路层直接发送数据。因为上一篇里面提到的是从链路层“收发”数据,结果只“收”完,忘了“发”,实在抱歉,所以就有这篇续出来了。 上一节我们主要研究了如何从链路层直接接收数据帧,可以通过bind函数来将原始套接字绑定到本地一个接口上,然后该套接字就只
2016-01-20 15:44:21 334
转载 Linux网络编程:原始套接字的魔力【下】
分类: LINUX可以接收链路层MAC帧的原始套接字 前面我们介绍过了通过原始套接字socket(AF_INET, SOCK_RAW, protocol)我们可以直接实现自行构造整个IP报文,然后对其收发。提醒一点,在用这种方式构造原始IP报文时,第三个参数protocol不能用IPPROTO_IP,这样会让系统疑惑,不知道该用什么协议来伺候你了。 今天
2016-01-20 15:43:24 495
转载 Linux网络编程:原始套接字的魔力【上】
分类: LINUX基于原始套接字编程 在开发面向连接的TCP和面向无连接的UDP程序时,我们所关心的核心问题在于数据收发层面,数据的传输特性由TCP或UDP来保证: 也就是说,对于TCP或UDP的程序开发,焦点在Data字段,我们没法直接对TCP或UDP头部字段进行赤裸裸的修改,当然还有IP头。换句话说,我们对它们头部操作的空间非常受限,只能使用它们
2016-01-20 15:42:36 449
转载 基于无连接的UDP程序设计
分类: LINUX 同样,在开发基于UDP的应用程序时,其主要流程如下: 对于面向无连接的UDP应用程序在开发过程中服务端和客户端的操作流程基本差不多。对比面向连接的TCP程序,服务端少了listen和accept函数。前面我们也说过listen函数最主要的作用就是将一个socket套接字描述符转为被动监听模式,然后调用accept主要是
2016-01-20 15:38:58 668
转载 Linux系统文件I/O编程(一)---open()等基本函数
Linux文件I/O系统概述 虚拟文件系统(VFS) Linux系统成功的关键因素之一就是具有与其他操作系统和谐共存的能力。Linux系统的文件系统由两层结构构建:第一层是虚拟文件系统(VFS),第二层是各种不同的具体的文件系统。 VFS就是把各种具体的文件系统的公共部分抽取出来,形成一个抽象层,是系统内核的一部分,它位于用户程序和具体的文件系统之间。它对用户提供了标
2016-01-20 15:31:03 426
转载 Linux网络编程:基于TCP的程序开发回顾篇
面向连接的TCP程序设计 基于TCP的程序开发分为服务器端和客户端两部分,常见的核心步骤和流程: 其实按照上面这个流程调用系统API确实可以完全实现应用层程序的开发,一点问题没有。可随着时间的推移,你会觉得这样子的开发毫无激情。为什么TCP的开发就要按照这样的流程来呢?而且一般出的问题几乎都不在这几个系统调用上,原因何在?当我们弄清网络开发的本质,协议栈的设计原
2016-01-20 11:40:59 261
转载 Linux环境下网络编程杂谈
今天我们说说“Pre-网络编程”。内容比较杂,但都是在做网络应用程序开发过程中经常要遇到的问题。一、大端、小端和网络字节序小端字节序:little-endian,将低字节存放在内存的起始地址;大端字节序:big-endian,将高字节存放在内存的其实地址。 例如,数字index=0x11223344,在大小端字节序方式下其存储形式为:上图一
2016-01-19 15:43:30 265
转载 Linux网络编程入门
(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我
2016-01-19 15:36:19 279
转载 gdbserver调试工具移植到ARM Linux教程
目前,嵌入式 Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机程序、用KGDB调试系统内核和用gdbserver调试用户空间程序。这三种调试方法的区别主要在于,目标机远程调试stub 的存在形式的不同,而其设计思路和实现方法则是大致相同的。
2016-01-11 14:32:24 1891
原创 无法获得锁
无法获得锁PC平台:ubunut12.04 LTS 问题描述:(Could not get lock /var/lib/dpkg/lock ) 启动软件源更新进程“apt-get”,并且它会一 直存活。由于它在运行时,会占用软件源更新时的系统锁(以下称“系统更新锁”,此锁文件在“/var/lib/apt/lists/”目录下),而当有新 的 apt-get进程生成时,就会因为得不到系统更新锁而出
2015-12-20 14:26:46 503
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人