- 博客(36)
- 资源 (22)
- 收藏
- 关注
原创 在linux中进行arm交叉编译体验tiny6410裸机程序开发流程
在某鱼上找了一个友善之臂的Tiny6410开发板用来体验一下嵌入式开发。这次先体验一下裸机程序的开发流程,由于这个开发板比较老旧了,官方文档有很多过期的内容,所以记录一下整个过程。
2023-07-25 20:20:36 1471
原创 Ubuntu Server 20.04 上用命令行创建到机房内网的专用连接
Linux 下面创建虚拟专用网络的方法在图形化界面下很简单,但是 ubuntu server 是没有图形化界面的。要在 ubuntu server 上创建到公司或者机房内网的专用连接只能使用命令行,主要有下面两个步骤。1. netplan 中设置使用 NetworkManager 而不是使用默认的 networkd2. 用 nmcli 命令创建专用连接。
2023-06-26 16:28:55 954
翻译 调试器(debugger)是如何工作的
当然,我们可以尝试让调试器和被调试进程(debuggee)使用相同的内存空间,但是如果被调试进程(debuggee)本身又创建了新的进程怎么办。此外,只要进程不是处于正在运行的状态,内核就可以看到这个进程的寄存器值,而调试器必须能够知道被调试进程(debuggee)的寄存器值。由于我们已经知道如何在调试器中等待被调试进程里发生的特定事件,另外,我们现在也知道了如何恢复地址0x400516的原始值(和我们修改0xcc的过程一样)。幸运的是,我们是在x86_64上,不对齐的内存访问是允许的。
2023-02-08 18:09:13 613
原创 探究用Linux信号处理函数安全退出进程
SIGINT(2) 触发的 10000 号处理函数运行到20%时被第1个 SIGTERM(15) 的 10001 号处理函数中断,10001号处理函数执行到 40%时又被SIGUSER2(12) 处理函数10002号中断,10002号处理函数执行完成之后10001号处理函数继续执行,10001号完成时系统又发送了第 2 个SIGTERM(15)触发了10003号处理函数,当10003号处理函数完成时才继续运行 10000号处理函数。
2023-02-06 15:49:02 623
翻译 一文读懂如何在 Linux 中编写设备驱动程序
我现在将继续修改我刚刚创建的驱动程序,以开发一个真正在真实设备上执行操作的驱动程序。我将使用简单而无处不在的计算机并行端口,驱动程序将被称为 parlelport(并行端口)。译者:时至今日,并口已不常见,而非作者所说的那样“无处不在”,我本来想找替代方法的,比如串口的 DTR 或者 RTS 脚给它置高电平,但是转念一想,现在的电脑上串口也不常见了,大家真的要实验,可能只能去买一个 ARM 开发板,或者其它什么实验板来玩一玩了。并口(并行端口)实际上是一种用于数字信息输入输出的设备。...
2022-08-17 22:45:26 3200
原创 解决 Windows 用拨号进入公司内网后使用默认路由导致不能访问互联网的问题
就算远程网络可以访问互联网,我们访问互联网的流量实际是从远程网络来的,也就是从办公室或者机房绕了一圈,而不是直接用我们自己的网络来访问互联网,这种操作不免舍近求远。通过下面的方法,可以对发往办公室或者机房的连接的路由进行设置,只把需要用办公室或者机房连接才能访问到的对远程内部网络的地址的访问发往办公室连接,对其它地址的访问仍旧使用我们自己的本地连接,这样就避免了连上办公室之后无法访问互联网或者对互联网的访问舍近求远的问题。要想同时既能够访问互联网又能够访问拨入的远程内网,可以通过下面几个简单的步骤来实现。.
2022-07-28 14:03:38 2033
原创 一步一步在 Windows 10 用 visual studio 2019 编译 zmqpp 4.2.0 版
zmqpp 是 libzmq 的高级 C++ 封装,不但提供了针对 libzmq C 接口的 C++ 封装,还提供了一些附加功能(Reactor模式, Actor模式 和 ZAP支持),详细见 zmqpp 文档 zmqpp: Main Page。在 ubuntu linux发行版上,可以直接用 apt-get 来安装使用,非常方便,但是在 windows 上如何编译使用却资料甚少。因为没有找到 zmqpp 的 windows 预编译发行版,所以只能自己用源码编译。这篇文章将一步一步实现在 windows 1
2022-07-14 15:08:41 1768 8
原创 花生壳的向日癸在linux mint上安装失败的问题
下载的文件SunloginClient-10.0.2.24779_amd64.deb 在linux mint上安装,会有报错信息,安装完成后无法运行程序。用以下方法修改一下deb文件,也就是解包修改内部的文件然后再打包就可以解决这个问题:1. 把SunloginClient-10.0.2.24779_amd64.deb 文件复制到一个目录2. 用下面的命令创建好目录结构$ mkdir -p newpack oldpack/DEBIAN3. 用下面命令把deb文件解压出来$ dpkg..
2020-05-28 09:30:21 863
原创 linux c解决多个第三方so动态库包含不同版本openssl造成的符号冲突
1.奇异的现象由于有一个功能(用钉钉群机器人向钉钉群发送消息)采用了libcurl库,所以链接了libcurl库,出现了一个非常奇怪的现象:编译正常,运行正常,但是运行到发送https post请求时,整个程序死机,让libcurl以VERBOSE方式输出执行信息时,发现停止在ALPN, offering http/1.1这里不动了,CPU有一个核100%占用。单独弄一个项目来测试libc...
2020-04-02 21:11:00 9020 5
原创 陈硕《Linux多线程服务端编程》中的EventLoop Reactor 的 c++11 版本
把原书第8章的例子《设计Reactor——如何从头开始编写非阻塞网络库》地址:https://github.com/chenshuo/recipes/tree/master/reactor用 c++11 搞了一遍,并且简化到全部代码放在一个文件中,方便察看。步骤0:什么都不做的 event loop 事件循环EventLoop, assertInLoopThread()这个步...
2019-12-29 11:21:10 881
原创 c++11 中能不能在构造函数中创建并启动线程,这样安全吗?
最近在写 c++ 的程序,做了一个类,这个类对象初始化时,需要创建一个使用该类成员函数作为入口函数的线程。自然地就想到在构造函数中启动线程,但是在陈硕《Linux多线程服务端编程》中提到,在构造函数中启动线程是不安全的,于是对这个问题进行了一番学习。后来在https://stackoverflow.com/questions/33571921/can-initialising-a-threa...
2019-12-24 11:25:39 4708 2
原创 如何编写共享库(一)- How To Write Shared Libraries 中文译本
0. 译者的话原文是由Ulrich Drepper 发布于下面的链接中https://www.akkadia.org/drepper/dsohowto.pdf因为需要制作一个c++的共享库,译者进行了很多检索,发现目标都指向于这篇文章。由于这个方面系统性介绍的中文资料难觅踪影,所以萌发了翻译此文章的念头。0.1 关于作者Ulrich Drepper 是“GNU C标准库”...
2019-09-10 10:51:48 996 2
原创 在windows 2008 R2上无法运行vc 2015的程序,显示缺少api-ms-win-crt-string-|1-1-0.dll的解决
最新移植了一个Linux程序到Windows,由于使用的Botan库最低要求 vc 2015 才能编译,所以没多想,整个程序也只能用vc 2015。在开发机上一切都正常,程序编译执行都非常顺利,结果没有想到的事发生了。程序最终是要在一台windows 2008 R2服务器上运行,用visual studio installer打包的安装包在安装时报安装包有问题,直接放上执行文件说是缺少api-...
2019-04-17 09:09:50 5696 3
原创 了解html5之sse服务器发送事件EventSource
由于有一个需求,需要把一些统计数据实时显示在web上,不需要考虑浏览器兼容性。找了一圈之后,有客户端轮询式的ajax,有高大上的websocket,html5的SSE(SERVER-SENT EVENTS 服务端发送事件)感觉实现起来比较简单。首先找到了这篇文章《PUSHING UPDATES TO THE WEB PAGE WITH HTML5 SERVER-SENT EVENTS》,根着它...
2019-04-15 18:15:16 780
原创 windows下使用Botan的奇怪问题[已解决]
最近要移植一个linux的程序到windows,其中字符编码各种坑先不去说,在linux运行得好好的Botan库在windows下死活不行,按说我们只用了这个库的一个小功能,移植应该不存在大问题,折腾了两天,才发现是编译的库不支持Debug造成的,改用Release问题马上就解决了。一. 问题程序用到了botan的 CryptoBox::decrypt 函数用来解密原先加密的字符串,lin...
2019-04-04 16:11:13 867
原创 在windows下编译Botan
官方的说明在这里https://botan.randombit.net/manual/building.html#on-windows但是我在VS2013一直不能编译成功,总是出现error C3646: “noexcept”这样的错误,后来查了一圈发现原来是只有VS2015以上才能支持这个 noexcept 功能,改用VS2017来编译就好了。把过程再简单记录一下:1. 下载...
2019-04-03 10:51:35 2065
翻译 Web浏览器的市场份额趋势图
从图中可以看到IE的份额在持续下降,chrome上升,firefox持平,Safari和Opera也都有上升,手机浏览器上升明显。
2012-08-10 10:22:28 444
原创 网盘烧钱大战——继续烧下去还是回归理性
115网盘昨天全面停止用户向公众分享文件的服务昨天,115网盘全面停止了用户向公众分享文件的服务,这个曾经的公众分享服务的王者“做了一个艰难的决定”。在这个公告里,我们看到停止服务的理由是“上级有关部门”的通知。而我想到的是,这是不是网盘服务商从烧钱大战开始回归理性了呢?在115之前,今年3月份“够快”也进行了转型其实停止用户向公众分享文件的服务115并不是第一家,在今年的
2012-08-08 11:43:36 1384
原创 自建存储服务器与网盘的比较
作为单位的网管,对ftp等自建存储服务并不陌生,最近发展得如火如荼的云存储自然也不能视而不见.经过一番试用和了解,个人觉得现在已经是和自建局域网存储说再见的时候了.自建局域网存储不外乎是ftp和网络共享等.在局域网内放置一台存储服务器,开好ftp或者网络共享,新建一堆用户并为
2011-08-30 11:58:20 5126
原创 zabbix-server 出现丢失数据的解决
<br />要增加启始进程。修改zabbix-server的配置,其中StartTrappers改大后就好了:<br /> <br /># Number of pre-forked instances of trappers# Default value is 5# This parameter must be between 0 and 255StartTrappers=144 <br />
2011-03-30 10:45:00 566
原创 zabbix proxy的使用要点
<br />在/etc/zabbix/zabbix_proxy.conf中设置server=字段是zabbix服务器的地址。Hostname设置成一个唯一的名字,在server那里要当ID用。所有通过proxy监控的agent中的server设成proxy的地址。在zabbix server的管理网页中,administrator->DM->增加proxies。增加的proxy名字就是前面说的当ID用的那个名字。然后,把通过proxy管理的agent都加入到这个proxy中,或者可以在host的设置面板
2011-03-24 17:00:00 685
原创 TCP转发代理用rinetd
<br />Rinetd - redirects TCP connections from one IP address and port to another<br />http://www.ubuntugeek.com/rinetd-redirects-tcp-connections-from-one-ip-address-and-port-to-another.html
2011-03-24 13:44:00 316
原创 chrome我用过的最快的浏览器(含用安装器下载安装很慢的解决)
<br />chrome刚出的时候,只知道google也出了浏览器,用了一下也就不用了。<br /> <br />后来家里有一台PIII的老电脑,一直在找合适的系统,从ubuntu、xubuntu、puppy linux、AntiX到最后Lubuntu。突然发现Lubuntu很快,然后就用了Lubuntu默认的chrome浏览器,发现比以前用的firefox要快很多。而且很多firefox有的插件,chrome里也有,像什么xmarks这种。<br /> <br />于是在windows系统下把书签同步了一
2011-03-02 20:47:00 1733
翻译 老电脑的10个用处-10 Things to Do With Old PCs
原帖:http://www.pcmag.com/article2/0,2817,1386999,00.asp如果你已经用电脑一段时间了,你肯定会有一台你不太使用或者根本不用的老电脑。当一台2Ghz的电脑只值不到1000美元时,一台老旧的奔腾2型300Mhz的电脑有什么用?答案取决于你是否有实验、取乐、学习和环保的意愿。这里有你可以对这种老旧电脑做的10件事,用相对好一些的老电脑来开始任务,开始我们真正的容克之旅。1.学习网络有两台电脑在手,你就可以试着组建一个局域网。从Windows 95开始的所有Wind
2011-02-24 11:54:00 916
原创 Ubuntu Server 的网卡流量和速率监控软件
用ethstatus可以监控实时的网卡带宽占用。用 sudo apt-get install ethstatus 命令安装好软件之后,用 ethstatus -i eth0 来查看eth0网卡。显示如下:这个软件能显示当前网卡的 RX 和 TX 速率,单位是Byte。另外要进行总流量的统计,可以用vnstat.安装: sudo apt-get install vnstat配置统计的网卡: sudo vnstat -u -i eth0显示信息: vnstatvnstat还可以显示图形。详细可参考http://
2011-02-22 16:15:00 761
原创 ubuntu server 10.04安装software RAID
<br />如今消耗一点服务器CPU怕啥?<br /> <br />在这个想法之下,使用软件RAID就要比去买RAID卡聪明了。<br /> <br />在一台4块1.5T硬盘之下试着装了一下,分了一个75M的区给/boot,一个50G的RAID0给root,一个超大的6T分区给/var。成功!<br /> <br />于是在一台2块500G硬盘的机子也装software RAID,死活无法启动,令人十分不解,在机房的强噪声和强辐射下,搞了3天,各种分法装了不下15次都是无法启动。<br /> <br />
2011-02-15 16:50:00 897 1
原创 zabbix server的一些设置
1.关于CacheSize的设置问题当监控的主机增加到一定数量,就会遇到zabbix-server进程自动退出,此时前端所有数据都不会更新,如未发觉此问题会以为一切正常,实际上一切都停止更新了你看到的只是一个静止的报表。此时如果zabbix-server的log里有这样的字句:[4331]: ERROR: Configuration buffer is too small. Please increase CacheSize parameter. 那么就要配置CacheSize了。在/etc/zabbix/
2011-02-15 16:28:00 567
翻译 Ubuntu server guide>Monitoring 章节的翻译
概述<br /> 对重要的服务器和服务进程的监控是系统管理工作的重要组成部分。大多数网络服务进程都有服务性能、可用性的监控,或者两个指标同时监控。这一部分将说明用于可用性监控的Nagios和用于性能监控的Munin的安装和配置。<br /> <br /> 这一部分的例子用到两台服务器,一台服务器名为server01另一台server02。Server01会安装上Nagios来监控在它自己上面运行的服务进程和在Server02上运行的服务进程。 S
2010-09-02 10:14:00 343
原创 dummy:windows下在codelite中使用wxsqlite3
首先安装codelite。安装方法在http://codelite.org/LiteEditor/Download有详细说明的。我偷懒,下载了最大的那个包http://sourceforge.net/projects/codelite/files/Releases/codelite-2.6.0/codelite-2.6.0.4189-mingw4.4.1-wx2.8.10.exe/download,里面包含了mingw和wxwidget。安装完毕之后,第一次启动codelite会出现一个黄色的提示,意思
2010-08-26 13:01:00 1259
原创 一个远程连接管理器,需要同时登录一批服务器的系统管理员非常好的助手。
<br />http://www.mremote.org/wiki/<br /> <br />这是个开源的远程连接管理器,以GPL发布。<br /> <br />支持windows 远程桌面,SSH1,SSH2,等几乎全部远程连接协议。同时打开多个TAB,还可以记录登录帐号和密码。
2010-06-13 14:59:00 227
原创 windows XP 关机对话框出来很慢的解决办法
If you have Windows XP and it shuts down slow, and you have NVidia graphic card, this can be problem. When computer starts, automatically starts "NVidia driver helper service", and it dont shut down
2010-05-15 11:02:00 733 1
原创 用U盘安装Ubuntu 9.10 Server
1. 下载ubuntu 9.10 server 的光盘镜像ISO文件。2. 找一台电脑,用UltraISO软件的菜单“文件->打开”打开下载的ISO文件,插入U盘,“启动->写入硬盘映像”开始制作安装U盘。3. 将U盘插入要安装的计算机,从U盘启动。4. Ubuntu封面出来后,选“Help”,按F6键。5. 输入“install cdrom-detect/try-usb=true
2010-05-07 17:18:00 296
计算思维导论 Mailund Thomas
2022-10-28
sunloginclient_10.0.2-24779_amd64.deb
2020-05-28
Botan库 已经在windows下编译好的32位Botan-2.10.0
2019-04-03
Effective Modern C++
2018-10-28
C++ 编程: 从问题分析到问题设计 第7版 D.S. Malik 2015
2018-10-28
Java ® Programming for Android ® Developers For Dummies 第二版的例子
2018-01-30
Spring MVC Beginner's Guide Second Edition
2017-09-11
Laravel 5.x Cookbook (Packt 2016)
2017-09-11
Learning PHP, MySQL & JavaScript With jQuery, CSS & HTML5 by Robin Nixon
2017-07-13
The Yii Book Larry Ullman更新版共575页,不是之前流传的361页版本
2017-03-30
Yii2初学者入门 Yii2 For Beginners
2017-03-29
Swift3游戏开发(第2版)
2017-03-27
高可用PostgreSQL数据库集群组建cookbook
2017-03-27
精通Python最佳实践:Degug、测试和维护
2017-03-27
OpenStack对象存储Swift必读
2015-12-23
掌握iPad SDK,为iphone开发者准备的iPad开发的书
2010-08-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人