
Linux
文章平均质量分 50
Z_hehe
不想说什么
展开
-
虚拟机搭建samba服务器与windows共享
转载地址参考:https://blog.youkuaiyun.com/weixin_38056448/article/details/83218458https://www.linuxidc.com/Linux/2018-11/155466.htm转载 2020-02-19 15:11:52 · 538 阅读 · 0 评论 -
关于ubuntu里更新软件包时无法获得锁的情况
Ubuntu “无法获得锁”解决方案(E: 无法获得锁 /var/cache/apt/archive现象一:E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源临时不可用)E: 无法对管理目录(/var/lib/dpkg/)加锁,是不是另一个包管理程序在使用它?无法执行其他apt-get命令解决办法:原创 2017-05-16 09:19:26 · 1814 阅读 · 0 评论 -
kali中VMtools的安装
在虚拟机中安装kali2.0后,会经常遇到安装vmware tools无法成功,或者提示安装成功了但是仍旧无法进行文件拖拽、复制和剪切的问题。本人试用了很多方法,总算摸索出一种简单有效的方法。这种方法只针对kali2.0有效,其他版本kali未测试。 不能安装VMware Workstation中自带的VMware tools,否则以下方法不能成功。步骤1、换源。转载 2017-05-16 09:22:54 · 985 阅读 · 0 评论 -
进程上下文和中断上下文详解
用户空间的应用程序,通过系统调用,进入内核空间。这个时候用户空间的进程要传递 很多变量、参数的值给内核,内核态运行的时候也要保存用户进程的一些寄存 器值、变量等。所谓的“进程上下文”,可以看作是用户进程传递给内核的这些参数以及内核要保存的那一整套的变量和寄存器值和当时的环境等。硬件通过触发信号,导致内核调用中断处理程序,进入内核空间。这个过程中,硬件的 一些变量和参数也要传递给内核,内核通过这转载 2017-05-17 10:01:35 · 606 阅读 · 0 评论 -
CentOS 7 巨大变动之 systemd 取代 SysV的Init
转自:http://www.ibm.com/developerworks/cn/linux/1407_liuming_init3/index.html, 少有改动。1 systemd是什么首先systmed是一个用户空间的程序,属于应用程序,不属于Linux内核范畴,Linux内核的主要特征在所有发行版中是统一的,厂商可以自由改变的是用户空间的应用程序。Linux内核加载启动后转载 2017-05-09 11:27:05 · 539 阅读 · 0 评论 -
ubuntu64位安装交叉编译器出现一些问题
最开始以为是64位和32位有不兼容,运行sudo apt-get install lsb-core 后同样出现这样的问题 后来贴吧里找到网友的解决方案:apt-get install lib32z1 lib32ncurses5 apt-get install lib32原创 2017-02-14 14:56:21 · 2255 阅读 · 0 评论 -
MIPS 大端序和小端序的问题
果然,继上次移植Libjpeg到openWRT上的问题之后,新的问题又出现了,之前写的用RTP传输jpg图像到VLC的程序,在虚拟机上运行时没问题的,可是在交叉编译到开发板上的时候就不行了,图像数据是传输出去了,但是VLC端就是接收不到图像。最后用抓包工具抓包看了看才发现,抓的包是一团乱啊,在UDP头后面的RTP头数据完全乱套了。抓包还抓到了TCP的三次握手(搞不懂为啥),还有个什么加密什么来着(原创 2016-11-23 19:46:52 · 12246 阅读 · 0 评论 -
内存池、进程池、线程池
池的概念由于服务器的硬件资源“充裕”,那么提高服务器性能的一个很直接的方法就是以空间换时间,即“浪费”服务器的硬件资源,以换取其运行效率。这就是池的概念。池是一组资源的集合,这组资源在服务器启动之初就完全被创建并初始化,这称为静态资源分配。当服务器进入正式运行阶段,即开始处理客户请求的时候,如果它需要相关的资源,就可以直接从池中获取,无需动态分配。很显然,直接从池中取得所需资源比动态分配资转载 2017-10-07 21:58:44 · 424 阅读 · 0 评论 -
Linux下函数调用堆栈帧的详细解释
http://www.ibm.com/developerworks/cn/linux/l-overflow/ 本文首先向读者讲解了Linux下进程地址空间的布局以及进程堆栈帧的结构,然后在此基础上介绍了Linux下缓冲区溢出攻击的 原理及对策。前言从逻辑上讲,进程的堆栈是由多个堆栈帧构成的,其中每个堆栈帧都对应一个函数调用。当函数调用发生时,新的堆栈帧被压入堆栈;当转载 2017-10-11 16:54:12 · 575 阅读 · 0 评论 -
多线程和多进程的区别
一.为何需要多进程(或者多线程),为何需要并发?这个问题或许本身都不是个问题。但是对于没有接触过多进程编程的朋友来说,他们确实无法感受到并发的魅力以及必要性。我想,只要你不是整天都写那种int main()到底的代码的人,那么或多或少你会遇到代码响应不够用的情况,也应该有尝过并发编程的甜头。就像一个快餐点的服务员,既要在前台接待客户点餐,又要接电话送外卖,没有分身术肯定会忙得你焦头烂额的。转载 2017-10-11 17:03:15 · 579 阅读 · 0 评论 -
采用dlopen、dlsym、dlclose加载动态链接库
1、前言 为了使程序方便扩展,具备通用性,可以采用插件形式。采用异步事件驱动模型,保证主程序逻辑不变,将各个业务已动态链接库的形式加载进来,这就是所谓的插件。linux提供了加载和处理动态链接库的系统调用,非常方便。本文先从使用上进行总结,涉及到基本的操作方法,关于动态链接库的本质及如何加载进来,需要进一步学习,后续继续补充。如何将程序设计为插件形式,挖掘出主题和业务之间的关系,需要进一转载 2017-10-11 17:04:35 · 371 阅读 · 0 评论 -
EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
在Linux环境下开发经常会碰到很多错误(设置errno),其中EAGAIN是其中比较常见的一个错误(比如用在非阻塞操作中)。从字面上来看,是提示再试一次。这个错误经常出现在当应用程序进行一些非阻塞(non-blocking)操作(对文件或socket)的时候。例如,以 O_NONBLOCK的标志打开文件/socket/FIFO,如果你连续做read操作而没有数据可读。此时程序不会阻塞起来等待转载 2017-10-11 17:05:56 · 385 阅读 · 0 评论 -
ubuntu安装QT creator时出现的几点错误
1.编译qtcreator 出现错误提示:error: Qt Creator needs a compiler set up to build. Configure a compile没有找到编译器,一般安装就可以了。sudo apt-get install build-essential 或sudo apt-get install gcc g++2. Qt错误:cannot f原创 2017-12-15 15:48:08 · 1651 阅读 · 0 评论 -
itop4412上移植360WiFi 二代AP模式
最近要在4412的板子上实现无线AP模式,但是给的资料都是作为STA模式的,在网上找了相应的资料,终于根据网上的资料移植360随身WIFI 2代的AP模式成功。主要是参考:http://blog.youkuaiyun.com/lidroid/article/details/46722541 可以从 https://github.com/eywalink/mt7601u 下载驱动源代码,修改sr原创 2017-12-25 21:18:46 · 764 阅读 · 0 评论 -
tcpdump
简介用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 实用命令实例默认启动tc转载 2017-05-07 10:02:11 · 689 阅读 · 0 评论 -
Netstat 命令
简介Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。输出信息含义执行netstat后,其输出结果为Active Internet connections (w/o servers)Proto Re转载 2017-05-07 09:56:41 · 405 阅读 · 0 评论 -
libjpeg的移植
最近的体会就是做啥都不容易啊,解决问题的速度总是跟不上问题出现的速度。上一秒刚为解决一个问题而欢欣不已,下一秒就有个新问题冒出来让你头痛不已,还都是些细节问题,最难把握。 因为之前做了会图像的压缩,用到了libjpeg库,所以安装了此库。我用的为jpegsrc.v9a.tar.gz 。刚开始安装到虚拟机ubuntu里。这个倒还容易。解压后,执行./configur原创 2016-11-22 21:08:33 · 1424 阅读 · 0 评论 -
V4L2视频采集框架
关于V4L2的编程,我看优快云上的大神们已经总结的很详细了,我就自己收藏些比较好的,以后方便再来学习: V4L2编程基础 官方V4L2源码 和菜鸟一起学linux之V4L2摄像头应用流程 linux下V4L2的摄像头采集 还有原创 2016-11-25 13:14:12 · 842 阅读 · 0 评论 -
Linux的SOCKET编程详解
这是一篇不错的文章,对socket编程中的原理和要点讲解的都很清楚。转载自 http://blog.youkuaiyun.com/chencheng126/article/details/44260799------------------------------Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的转载 2016-11-26 15:26:50 · 438 阅读 · 0 评论 -
Linux下实现定时器Timer的几种方法
http://blog.youkuaiyun.com/lxmky/article/details/7669296定时器Timer应用场景非常广泛,在Linux下,有以下几种方法:1,使用sleep()和usleep()其中sleep精度是1秒,usleep精度是1微妙,具体代码就不写了。使用这种方法缺点比较明显,在Linux系统中,sleep类函数不能保证精度,尤其在系统负载比较大转载 2016-11-27 10:27:38 · 2139 阅读 · 0 评论 -
linux socke UDP
sendto(经socket传送数据)相关函数send , sendmsg,recv , recvfrom , socket表头文件#include #include 定义函数int sendto ( int s , const void * msg, int len, unsigned int flags, const struct s原创 2016-11-28 16:07:42 · 324 阅读 · 0 评论 -
linux下如何用c语言调用shell命令
C程序调用shell脚本共有三种法子 :system()、popen()、exec系列函数 system() 不用你自己去产生进程,它已经封装了,直接加入自己的命令exec 需要你自己 fork 进程,然后exec 自己的命令popen() 也可以实现执行你的命令,比system 开销小1)system(shell命令或shell脚本路径);system()会调用fork(原创 2016-12-21 10:12:42 · 712 阅读 · 0 评论 -
用VS2015开发Linux程序详细教程-配置篇
VS2015推出了跨平台开发,其中包括了对Linux程序开发的支持,最近刚好需要开发Linux程序,对其进行了一些研究。首先介绍下涉及到的开发工具开发工具VS2015Update3,下文简称VS(可以下载免费社区版)Visual C++ for Linux Development(VC_Linux.exe) 下载链接VMware (虚拟机软件)ubuntu-16.04-de转载 2016-12-31 13:44:31 · 3208 阅读 · 2 评论 -
Linux下system () 函数详解简介
(执行shell 命令) 相关函数 fork,execve,waitpid,popen 表头文件 #include 定义函数 int system(const char * string); 函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符转载 2016-12-21 10:14:38 · 3685 阅读 · 0 评论 -
GitHub的使用
原文 http://www.eoeandroid.com/thread-274556-1-1.html【初识Github】首先让我们大家一起喊一句“Hello Github”。YEAH!就是这样。Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目前,转载 2017-01-11 20:45:54 · 347 阅读 · 0 评论 -
Bash测试网络是否连通
#!/bin/bash #使用Google的公共DNS测试 echo echo "test network connection ... 测试网络连接 ..." echo PINGRET=$( ping 8.8.8.8 -c 4 | grep "icmp_" ) #echo $PINGRET转载 2017-03-27 15:19:05 · 1272 阅读 · 0 评论 -
将DHT11移植到Linux系统上的一些问题
本想,这驱动调试起来应该简单的。但在调试到过程中,发现采集到的数据有时正确,有时错误,成功率约为50%。于是按照手册微调一下时序,并没有解决问题。网上查阅相关资料,发现都是用单片机来编程的。当程序本来就是以裸奔的思想跑的,为什么移植到Linux会出错呢?从dht11出来的信号都正常啊。误打误撞,使用local_irq_disable这个函数后,读出的数据都正常啦。local_irq_disable转载 2017-03-10 19:00:02 · 753 阅读 · 0 评论 -
linux 进程地址空间
转自:草根老师博客:http://blog.chinaunix.net/uid-26833883-id-3193585.html我们知道,在32位机器上linux操作系统中的进程的地址空间大小是4G,其中0-3G是用户空间,3G-4G是内核空间。其实,这个4G的地址空间是不存在的,也就是我们所说的虚拟内存空间。那虚拟内存空间是什么呢,它与实际物理内存空间又是怎样对应转载 2017-03-24 09:59:14 · 351 阅读 · 0 评论 -
在Linux下使用iconv转换字符串编码
http://www.cnblogs.com/findumars/p/5603779.html在Linux下写C程序,尤其是网络通信程序时经常遇到编码转换的问题,这里要用到iconv函数库。iconv函数库有以下三个函数123456#include iconv_t iconv_open(const char *tocode, cons转载 2017-03-24 12:17:57 · 798 阅读 · 0 评论 -
vim 常用命令
vim的三种模式: 1 命令模式:vim的默认模式为命令模式,进入vim后就在此模式下,执行编辑命令,如复制、粘贴、查找、替换、及删除等操作。无论vim处于什么模式,按ESC键总会返回命令模式。 2 插入模式:在插入模式下才能输入文本,从命令模式进入插入模式有很多种命令可供选择。 3 底行模式:在命令模式下,原创 2016-11-30 18:48:12 · 381 阅读 · 0 评论