![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 86
zomoe
我只能给你一间小小的阁楼,一扇朝北的窗,让你望见星斗。
展开
-
ubuntu12.10 配置LAMP架构(linux+apache+mysql+php)
最近自己开始学习php自然需要熟悉一个简单网站的搭建,首先便选择了主流小型网站的架构搭建设计,即LAMP写这篇blog的目的其实只是为了学习记录。如有什么错误,欢迎指正。如今Linux+Apache+Mysql+PHP的组合已经非常非常流行。可以说Linux最初的流行和Apache服务器的巨大市场占有率息息相关。LAMP又都是开源产品,在使用这一套产品的时候,除了具有不可比拟的价格优势,还原创 2013-03-15 18:11:45 · 1927 阅读 · 0 评论 -
Something about "extern inline " ?
今天再看一段代码的时候看到了extern inline定义,当时没感觉,回过神来后觉得好像哪里不对。自己写代码经常是static inline,突然看到这个在自己看来的新东西而对大牛来说只是司空见惯的小菜时,我该哭还是笑嘞!!(还是太水的原因。)我们还是先来说说static inline,我们都知道对于static声明,当我们同时编译多个文件时,所有未加static前缀的全局变量和函数原创 2014-03-23 00:13:04 · 1534 阅读 · 0 评论 -
Something funny
有段时间没有更新blog了,今天本想写一写负载均衡中关于consistent hashing的一些东西,不过目前只是了解原理。具体的代码实现还没有看过,所以觉得写了blog也可能只是像网上众多的page一般,只能简单介绍原理,说说飘来飘去的关于object的hash映射关系,加上virtual node的概念。没有具体实现,那便没有太多的效果,所以还是再过些时候,了解完全再写一个完整的blog原创 2014-03-21 23:45:40 · 1223 阅读 · 0 评论 -
科普一下Linux防火墙Netfilter/iptables
最近看了一些网络安全的东西,觉得网络的世界远远没有我们想象的那么简单。去年自己只是简单的看了一些关于iptables的简单使用规则,当然现在也只是对iptables有简单的了解而已,不能算上是熟悉,写这点东西的目的也只是简单的科普,很多东西只能简单的提下,因为这部分内容实在太多,无法一一列举。 iptables本身是Linux用来处理底层网络数据的一种方法,很多人都将iptab原创 2014-02-27 22:45:05 · 2100 阅读 · 0 评论 -
服务端处理常用的5种基础策略
一、一个线程服务多个客户端,使用非阻塞I/O和水平触发的就绪通知把网络句柄设置为非阻塞模型,然后使用select()或poll()来告知哪个句柄已有数据在等待处理。此模型是最传统的,在此模型下,由内核告知你某个文件描述符是否准备好,是否已经完成你的任务自从上次内核告知已准备好以来(“水平触发”这个名字来源计算机硬件设计,与其相对的是“边缘触发”,JonathonLemon在它的关于kqueue转载 2014-02-27 20:51:47 · 1787 阅读 · 0 评论 -
【浅谈】x86内存管理的分段分页机制
最近一直在接着操作系统的课程,着手跟着os.dev上的大神的文档写一个小型的内核,然后前期的东西自己一直在看也没时间写Blog,最近做到了内存管理这里,看了Jamesmolloy的文档还有一些os.dev.org上的关于memorymanage的东西,总觉的还是写点东西吧,虽是赘述,但对自己而言定是有用的。我不想说太多关于早期8086分段的原因,只是简单说一下这种概念。我们知道x86架构下的分原创 2013-11-05 21:58:56 · 6778 阅读 · 5 评论 -
浅谈server端基本的设计模型及部分问题
用了大概一个半月的时间都在做OS相关的实验感觉操作系统的东西自己还是了解适可而止,当然OS中包含了太多的设计模式以及底层相关的东西都会对自己在server端处理起到指引的作用,但是目前自己还是还是感觉自己还是对server端的处理比较感兴趣,固不再废话,进入正题--server端基本的设计模式。 [注]:所有东西基于Linux环境,并且部分设计模型在Linux下有良好的表现,不一定在Wind原创 2013-11-15 20:16:43 · 2908 阅读 · 3 评论 -
用Linux C的互斥锁机制解决哲学家就餐问题(简单实现)
在1971年,著名的计算机科学家艾兹格·迪科斯彻提出了一个同步问题,即假设有五台计算机都试图访问五份共享的磁带驱动器。稍后,这个问题被托尼·霍尔重新表述为哲学家就餐问题。这个问题可以用来解释死锁和资源耗尽。 「哲学家就餐说明」:有五个哲学家共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个筷子,他们的生活方式是交替进行思考和就餐,通常,一个哲学家饥饿时就会试图去取用其左右最靠近自己的筷原创 2013-09-29 18:50:30 · 6413 阅读 · 3 评论 -
函数指针数组做命令解析
今天偶然看到欢神的FTP代码,做命令解析用的是函数指针数组来做,这样可以省下一大堆的strcmp函数,觉得非常高端,就想记录下来,同时组内大一同学也在做这些东西,我觉得可以借鉴一下这种处理命令的方式,看一段自己写的测试函数吧,看完后应该就懂我再说什么了:#include #include #include #include char cmd[5][15]={"ls","search",原创 2013-08-14 17:45:31 · 1300 阅读 · 0 评论 -
用条件变量和互斥锁去管理线程池
今天终于克服众多Bug 搞出了一个简单的线程池的应用,在初始化线程池之后,可以实现向其中投放任务,多个线程完成大于线程数目的任务量,当然每个任务只能一次被一个线程执行。当一个线程完成一个任务后回去检测当前的剩余任务,从而继续执行剩余任务。大体的内容实现就是这样,下面仔细说一下整个流程问题。 首先谈到线程池,顾名思义我们需要预先建立多个线程,但是怎么去管理这些线程才是重点。下面的结构可以作为线原创 2013-08-08 22:56:14 · 2610 阅读 · 6 评论 -
浅谈POSIX线程的私有数据
当线程中的一个函数需要创建私有数据时,该私有数据在对函数的调用之间保持一致,数据能静态地分配在存储器中,当我们采用命名范围也许可以实现它使用在函数或是文件(静态),或是全局(EXTERN)。但是当涉及到线程时就不是那么简单了。在单线程程序中,我们经常要用到"全局变量"以实现多个函数间共享数据。在多线程环境下,由于数据空间是共享的,因此全局变量也为所有线程所共有。但有时应用程序设计中有必要提供线程私原创 2013-07-23 12:29:21 · 1641 阅读 · 0 评论 -
浅谈Linux网络编程的基本内容
今天只是想浅谈一下对于Linux网络编程中一些基本问题的理解。我们知道互联网通信都是基于TCP/IP协议簇的,里面从一开始设计就保证了基本的通信安全和效率问题。 顾名思义的解释:IP(Internet协议)和TCP(传输控制协议),合起来叫TCP/IP。 IP协议为接入网络中的每台计算机分配了一个独一无二的地址,并负责在传输过程中寻找到目的计算机。TCP协议则负责保证传输的可靠性:一旦传原创 2013-07-28 21:33:09 · 2599 阅读 · 6 评论 -
尝试探索基于Linux C的网卡抓包过程
其实想探究网卡抓包问题已经有好久了。前几天找了时间算是基本上了解了那部分的一些基本东西,在这里只是赘述罢了。抓包首先便要知道经过网卡的数据其实都是通过底层的链路层(MAC),在Linux系统中我们获取网卡的数据流量其实是直接从链路层收发数据帧。至于如何进行TCP/UDP连接本文就不再赘述(之前的一段关于web server的程序已经大概说明),直接从最关键的原始套接字( raw socket)原创 2013-04-11 13:32:04 · 5041 阅读 · 0 评论 -
Linux 线程实现机制分析
本文转自:http://www.ibm.com/developerworks/cn/linux/kernel/l-thread/一.基础知识:线程和进程按照教科书上的定义,进程是资源管理的最小单位,线程是程序执行的最小单位。在操作系统设计上,从进程演化出线程,最主要的目的就是更好的支持SMP以及减小(进程/线程)上下文切换开销。无论按照怎样的分法,一个进程至少需要一个线程作为它的指转载 2013-07-17 13:28:58 · 1492 阅读 · 0 评论 -
从电脑开机加电到main函数的执行【一】
最近开始接触操作系统,在用了Linux操作系统这么久,一直不明白他是怎么做到在电脑上运行的?首先我便开始了解了这一问题,即从电脑开机加电到main函数的执行干了什么?通过自己这几日没事看看书终于了这个过程分了三步,其目的是实现从启动盘加载操作系统程序,完成执行main函数所需要的准备工作。【第1步】:启动BIOS,准备实模式下的中断向量表和中断服务程序;【第2步】:从启动盘加载操作系统原创 2013-07-15 16:17:47 · 2174 阅读 · 0 评论 -
linux下 简单学习epoll处理海量链接
最近在 看一些关于linux C 服务器编程方面的东西,随及就涉及到了大量连接的处理的问题。我 们知道在linux下我们一般用tcp/ip协议去写简单的C/S模型的代码,经常会用到select()函数。它是用来确定一个或多个套接口状态的函数。对每一个套接口,调用者可查询它的可读性、可写性及错误状态信息。用fd_set结构(可以google)来表示一组等待检查的套接口,可以用来实现多路复用的I/O模原创 2013-04-27 20:53:57 · 2341 阅读 · 1 评论 -
关于strace的一点东西
好久没写博客了,感觉有点惭愧,觉得自己也应该静下心来利用自己可分配的时间去提升自己. 虽然最近在看一些Python的东西,可是觉得自己还是不能忘记本行啊,Linux C的一些东西必须一直好好温习. 不废话,今天打算写一个简单的东西, strace , 应该都对它或多或少的知道一些.很多时候除了core dump, backtrace的方式去排查程序的问题外, str原创 2014-07-19 11:40:59 · 2004 阅读 · 2 评论