<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Meows的牧场]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Wu_Roc</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Wu_Roc]]></copyright><item><title><![CDATA[Linux内核进程调度]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/78064845</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/78064845</guid><author>Wu_Roc</author><pubDate>Fri, 22 Sep 2017 16:58:52 +0800</pubDate><description><![CDATA[CFS在Linux2.6.23之后，内核默认的调度器是CFS，也就是”Completely Fair Scheduler”。这个调度器替换了早先的o(1)调度器。APILinux提供了下面的系统调用来控制CPU调度的行为、策略和线程优先级。
nice：为调用线程设置一个nice值，并返回新的nice值。
getpriority：返回一个线程，或一个进程组，或一个特定用户的线程集合的nice值。
se]]></description><category></category></item><item><title><![CDATA[gcc中const变量的内存位置]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77585081</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77585081</guid><author>Wu_Roc</author><pubDate>Fri, 25 Aug 2017 18:35:50 +0800</pubDate><description><![CDATA[const变量的存放位置并没有标准规定。 
在gcc中，如果const变量是全局函数，那么它会被存到Data Segment。如果不是全局变量，而是放在函数内的变量，则是放在栈内。这时候就会出现一种很奇特的未定义操作，就是const变量放在栈内可以通过指针来进修改。试验代码如下：#include <stdio.h>
const int b = 1111;
int main() {
    const]]></description><category></category></item><item><title><![CDATA[Linux中写时复制的fork和vfork的实际区别]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77460861</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77460861</guid><author>Wu_Roc</author><pubDate>Mon, 21 Aug 2017 21:40:25 +0800</pubDate><description><![CDATA[我们知道fork是创建一个子进程，需要拷贝大量的内存和进程上下文，而vfork则不需要拷贝父进程内容，因为它立马就会调用execve()等函数，执行新的程序。但是在Linux内核中（几乎是所有现代操作系统中）实现了一种叫做copy_on_write的技术，就是fork()了之后，并不拷贝父进程实际的内存数据。只有当父进程或子进程对这个数据进行了修改，才会进行真正的拷贝。那么vfork()和fork(]]></description><category></category></item><item><title><![CDATA[fork()的继承内容]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77460637</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77460637</guid><author>Wu_Roc</author><pubDate>Mon, 21 Aug 2017 21:19:49 +0800</pubDate><description><![CDATA[子进程完全复制了父进程的内容，除了下面的东西（posix标准）：
PID
PPID
memory lock (mlock, mlockall)
  mlock主要是用来防止部分虚拟地址空间被交换到交换空间。Process resource utilizations  和 CPU time counters
  系统资源使用率是指像CPU使用时间，内存使用大小，IPC消息传递数量，上下文切换次数等，这]]></description><category></category></item><item><title><![CDATA[Linux线程的内存布局]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77430123</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77430123</guid><author>Wu_Roc</author><pubDate>Sun, 20 Aug 2017 16:40:50 +0800</pubDate><description><![CDATA[Linux线程的内存布局在Linux的glibc中，通过pthread结构实现线程。由于线程和主进程是使用同一个虚拟地址空间，所以我们可以通过pmap -X <pid>来比较线程运行前和运行后的虚拟地址空间变化。// gcc main.c -lpthread && ./a.out
sem_t* sem;
void* thread_func(void *arg) {
    printf("wait]]></description><category></category></item><item><title><![CDATA[Linux X86_64位虚拟地址空间布局与试验]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77203480</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77203480</guid><author>Wu_Roc</author><pubDate>Tue, 15 Aug 2017 23:35:54 +0800</pubDate><description><![CDATA[Linux虚拟地址布局x64 layout在x86_64下面，其实虚拟地址只使用了48位。所以C语言里，输出地址都是12位16进制的地址。48位地址长度也就是对应了256TB的地址空间。而在Linux下有效的地址区间是从0x0 ~ 0x00007FFF FFFFFFFF还有0xFFFF8000 00000000 ~ 0xFFFFFFFF FFFFFFFF两个地址区间。而每个地址区间都有128TB的地]]></description><category></category></item><item><title><![CDATA[lua与c++的class绑定]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170581</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170581</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 22:03:56 +0800</pubDate><description><![CDATA[一个naive的方法static int newSprite(lua_State *L) 
{
    int n = lua_gettop(L);  // Number of arguments
    if (n != 4) 
        return luaL_error(L, "Got %d arguments expected 4", n);     double x = luaL_c]]></description><category></category></item><item><title><![CDATA[Cookie与Session]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170332</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170332</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 21:36:23 +0800</pubDate><description><![CDATA[由于Web及HTTP的短连接性，Cookie和Session是使用户会话持久化的两种技术。 
Cookie是由浏览器维持的，存储在客户端的一小段文本信息 
Cookie是有时间限制的，根据生命期不同分成两种：会话Cookie和持久Cookie； 
如果不设置过期时间，则表示这个Cookie生命周期为从创建到浏览器关闭止，这种Cookie一般保存在内存中。 
如果设置了过期时间，浏览器就会把Cooki]]></description><category></category></item><item><title><![CDATA[golang的原始套接字]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170201</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77170201</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 21:23:00 +0800</pubDate><description><![CDATA[RawSocket是原始套接字，即可以接受并处理到网卡上的原始数据帧或数据包，而不经过内核的TCP/IP层的处理。 
在Go语言的net库里，我们可以使用iprawsocket里的ListenIP来获得创建原生Socket的能力。监听数据包package mainimport (
    "fmt"
    "net"
)func main() {
    protocol := "icmp"]]></description><category></category></item><item><title><![CDATA[golang net包基础解析]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77169838</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77169838</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 20:55:00 +0800</pubDate><description><![CDATA[这里主要介绍网络包内主要的几个类型。 
net包是提供了底层的网络接口的，但是平时我们需要就是两个主要的接口，Listener和Conn。1. ConnConn是一个基本的接口类型，以数据流为向导的网络连接接口。注意他是接口类型，不需要我们来手动构造实现Conn接口。 
生成满足Conn接口的类型的函数func Dial(network, address string) (Conn, error)]]></description><category></category></item><item><title><![CDATA[CMake配置工程链接库]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77169285</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77169285</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 20:30:52 +0800</pubDate><description><![CDATA[CMake是一款优秀的C/C++项目编译管理工具。而C/C++项目经常使用一些第三方库，如boost、luajit等。而在CMake下大致有3种方式将C/C++库引入工程。find_packagefind_package是CMake原生使用的库查找命令。使用方式如下find_package(Boost REQUIRED)
find_package(SDL2 REQUIRED)
if(Boost_FO]]></description><category></category></item><item><title><![CDATA[尝试Ping百度域名后的思考]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/77168426</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/77168426</guid><author>Wu_Roc</author><pubDate>Mon, 14 Aug 2017 19:58:31 +0800</pubDate><description><![CDATA[ping百度你会发现ping www.baidu.com的时候，会转为ping www.a.shifen.com。但是ping baidu.com的时候却是普通的ip地址，而且ip地址还会变化。那么出现www.a.shifen.com的原因是什么呢？为什么baidu.com和www.baidu.com的解析地址不同呢？从DNS查找原因首先我们需要明白www.baidu.com和baidu.com是两]]></description><category></category></item><item><title><![CDATA[ubuntu下的resolvconf命令]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/44541681</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/44541681</guid><author>Wu_Roc</author><pubDate>Sun, 22 Mar 2015 21:09:54 +0800</pubDate><description><![CDATA[dns地址的存放地址是/etc/resolv.conf 这是一个链接文件
但是如果直接写这样有点蛋疼，最后你会发现他有时会被抹去。为什么呢，
因为这是ubuntu里 resolvconf这个脚本命令的原因。
resolvconf是debian系里一个管理dns的命令，dhclient,ifup等命令都是支持用它来管理dns的
目录：
/run/resolvconf/resolv.conf]]></description><category></category></item><item><title><![CDATA[linux下dbus的理解学习]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/44516339</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/44516339</guid><author>Wu_Roc</author><pubDate>Sat, 21 Mar 2015 15:51:10 +0800</pubDate><description><![CDATA[最近在设计一个linux桌面程序。而进程间的交互准备使用dbus来解决。
介绍：
有那么个组织叫freedesktop，它是专门为linux桌面制定标准的。什么KDE，GNOME都是按他的标准来的。而dbus是其中的桌面消息机制的一个标准。
dbus是一个IPC的管理系统，其实就底层来说就是本地socket通信。但是他是将所有的消息都通过总线的方式来管理分发，易于管理和安全。
dbus一般]]></description><category></category></item><item><title><![CDATA[mint-kde卸载破损的wicd包，恢复被删除的network-manager]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/41833721</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/41833721</guid><author>Wu_Roc</author><pubDate>Wed, 10 Dec 2014 00:00:16 +0800</pubDate><description><![CDATA[linux发行版：mint17-kde 
最近想学习网络连接器设计。下载了wicd的最新源码。
后来像尝试wicd，因为冲突将network-manager卸载，但发现断网无法apt-get wicd。只能源码安装wicd。
通过python setup.py后发现 wicd安装出错。可以打开wicd，但是里面的无线网络配置功能无法使用，所以断网。且无法卸载（因为是源码安装，而其自带的卸载失]]></description><category></category></item><item><title><![CDATA[KDE解决Could not start d-bus. Can you call qdbus?]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/41789947</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/41789947</guid><author>Wu_Roc</author><pubDate>Sun, 07 Dec 2014 19:45:01 +0800</pubDate><description><![CDATA[最近linuxmint-kde更新，不知怎么进不去KDE桌面。弹出Could not start d-bus. Can you call qdbus
我尝试了
sudo apt-get install qdbus
sudo apt-get install qdbus-qt5
因为都正常安装所以没解决。

后来搜索网上发现了这个BUG的讨论
https://bugs.launchpad]]></description><category></category></item><item><title><![CDATA[cocos2dx-3.0 环境安装]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/24908953</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/24908953</guid><author>Wu_Roc</author><pubDate>Sat, 03 May 2014 10:58:48 +0800</pubDate><description><![CDATA[这里我只是简单写下如何在wondows下运行例程。
环境要求：
windows
cocos-2dx-3.0(http://www.cocos2d-x.org/download)
Visual Stduio 2013
Python 2.7
其实这里vs2013或者2012都可以。因为cocos-2ds-3.0使用C++11的特性。所以不建议使用vs2010。

直接在build目录下]]></description><category></category></item><item><title><![CDATA[web.py HTML javascript 多附件上传实现]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/24772585</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/24772585</guid><author>Wu_Roc</author><pubDate>Wed, 30 Apr 2014 11:34:44 +0800</pubDate><description><![CDATA[最近在做网站]]></description><category></category></item><item><title><![CDATA[C语言的模块编写规范]]></title><link>https://blog.youkuaiyun.com/Wu_Roc/article/details/24493313</link><guid>https://blog.youkuaiyun.com/Wu_Roc/article/details/24493313</guid><author>Wu_Roc</author><pubDate>Fri, 25 Apr 2014 19:39:57 +0800</pubDate><description><![CDATA[最近在linux下编写FTP，]]></description><category></category></item></channel></rss>