- 博客(182)
- 资源 (7)
- 收藏
- 关注
原创 按下计算机电源键的一刻发生了什么(2)?
上一篇博客按下计算机电源键的一刻发生了什么(1)?我们说到开始加载linux内核文件,系统开始正式启动,回顾一下都大体经历了哪几个步骤: 1:通电之后BIOS从CMOS读取硬件参数信息,接着BIOS自检,找到我们设置的启动盘。 2:开始读取启动盘“0“磁道“1“扇区的MBR信息,执行boot loader程序。 3:根据boot loader找到我们内核文件的位置,开始加载内核文件
2015-10-11 21:34:09 975
原创 小杨同学git使用记(适合使用过git但是不熟练的童鞋)
首先声明:这不是一篇git使用手册或者指南,如果要详细的git使用指南,下面是廖雪峰的git教程,可以系统学习廖雪峰的git教程,当然,如果你想马上以一种正确的方式使用git,那么接下来你很快就会学会如何正确使用.前提是你已经知道git这个工具.并且想用它来管理你的代码.
2015-10-09 16:00:44 1146 2
原创 按下计算机电源键的一刻发生了什么(1)?
我一直很好奇我们按下计算机电源键的一刻,计算机内部到底发生了什么,听说那里面是一个二进制的世界,但是为什么计算机本身又是这样的绚丽缤纷,引人入胜……在我们计算机的内部,如果把它比喻为一块果园,有桃树,梨树,苹果树等等,那我们的主板就算是土地,因为它扮演的是一个平台的作用.不论cpu,各种芯片,存储器等都是在它上面的.
2015-10-03 20:51:49 2153
原创 我因为什么而热爱
昨天晚上又看了一遍<操作系统革命>,每次看都有不同的收获,每次看心都会被震撼,之所以叫革命,是因为这真的是一场计算机软件思维方式和行为方式的转变,思维方式可以说GNU/linux操作系统(之所以不叫linux操作系统,因为linus只是较GNU较早开发出比较稳定的内核而已)的开发模式打破了原来传统的教堂模式,转为集市模式,这里没有等级森严的开发团队,严格的版本控制,有的只是不断的提交bug,不断的改
2015-10-03 11:24:05 966 1
原创 TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复
我们在开始假定: 1:数据是单方向传递,另一个窗口只发送确认. 2:接收方的缓存足够大,因此发送方的大小的大小由网络的拥塞程度来决定.一:慢开始算法和拥塞避免算法 发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,当窗口值等于16(慢开始门限),然后我们开始采用”加
2015-09-16 20:14:51 17138 4
原创 TCP报文段首部详解
TCP虽然是面向字节流的,但是tcp传送的数据单元却是报文段,一个报文段分为首部和数据两部分,几乎TCP所有功能都从首部来体现,下面我们来详细的剖析下它的首部. (1):源端口与目标端口:分别写入源端口号和目标端口号. (2):32位序列号:也就是我们tcp三次握手中的seq,表示的是我们tcp数据段发送的第一个字节的序号,范围[0,2^32 - 1],例如,我们的seq = 201,携带的
2015-09-16 16:57:31 5651
原创 TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议
前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcpdump命令抓的三次握手的包,可以看到seq和ack都比较大,我自己也无法解释原因. 第二张是在同一过程中用Wireshark抓的包,其中seq和ack还比较正常,难道原
2015-09-16 16:27:21 12406
原创 Linux&C———进程间通信
管道和有名管道 消息队列 共享内存 信号 套接字 由于进程之间的并不会像线程那样共享地址空间和数据空间,所以进程之间就必须有自己特有的通信方式,这篇博客主要介绍自己了解到的几种进程之间的通信方式,内容讲的比较浅,目的相当于做学习笔记. 一:管道和有名管道 管道是一种半双工的通信方式(即数据只能单方面流动),TCP协议提供的就是一种全双工的通信方式,并且管道只能在具有亲缘关系
2015-09-14 20:02:00 776
原创 Linux&C ——信号以及信号处理
一:linux信号的简单介绍。 信号提供给我们一种异步处理事件的方法,由于进程之间彼此的地址空间是独立的,所以进程之间的通信就需要特殊的机制,而信号是进程之间唯一的异步通信方式。我们平时可以接触到的信号来源一般有:用户从键盘键入、一些硬件的异常、用户使用kill命令或者函数发送或者当系统检
2015-09-07 20:36:06 973
原创 Linux&c 文件操作,线程进程控制,网络编程,简单知识点梳理
一:文件操作 在linux下,一切皆文件,目录是文件,称为目录文件,内容是该目录的目录项(但是目录只有内核可以编辑,超级用户也不可以编辑),设备也是设备文件,在/dev存放的就是一些设备文件,linux的文件系统(VFS:虚拟文件系统:提供一种机制,将各种不同的文件系统结合起来,并且提供统一的应用程序编程接口,我们可以不用考虑针对不同的文件系统去采用不同的读写方式)主要用于管理文件存储空间的分配,
2015-09-01 22:01:27 1198
原创 Linux&C网络编程————“聊天室”
从上周到现在一直在完成最后的项目,自己的聊天室,所以博客就没怎么跟了,今天晚上自己的聊天室基本实现,让学长检查了,也有好些bug,自己还算满意,主要实现的功能有:登录注册附近的人(服务器端全部在线的人)好友管理(查看所有及在线好友,添加好友,删除好友)聊天(私聊群聊,查看群,建群,申请入群,离线消息)聊天记录的保存服务器的日志处理通过这次写这个简单的ftp聊天室,主要是对自己这一个暑假
2015-08-18 23:02:12 2618 4
原创 “TCP:三次握手”分析——以一个简单的“服务器”和“客户端”为例
linux&C这两天学到了网络编程这一章,自己写了一个小的”服务器”和”客户端”程序,目的在于简单理解tcp/ip模型,以及要搭建一台简单服务器,服务器和客户端最基本的事情要干什么,这篇博客就这个小程序,也简单分析了自己对”TCP-三次握手”过程的理解。因为初学网络编程,说的不对的地方欢迎大家评论交流。 套接字: 套接字由4部分组成,服务器IP地址和客户端IP地址以及服务器端口号和客户端端
2015-08-08 18:59:35 5310 10
原创 Linux&C 线程控制 课后习题
Q1:多线程与多进程相比有什么优势? 多进程程序耗费的资源大,因为fork()的时候子进程需要继承父进程的几乎所有东西,但是多线程程序线程只继承一部分,即自己的私有数据,例如自己的线程ID,一组寄存器,堆栈,信号屏蔽字,errno值,调度优先级 多进程的程序之间的数据相互独立,所以通信之间就必须要专门的通信方式,但是多线程之间共享数据空间,所以线程之间通信变的方便。 多进程之间被分
2015-08-06 00:08:04 2628 2
原创 linux下c语言实现简单----线程池
这两天刚好看完linux&c这本书的进程线程部分,学长建议可以用c语言实现一个简单的线程池,也是对线程知识的一个回顾与应用。线程的优点有好多,它是”轻量级的进程”,所需资源少,多线程共享数据空间,线程之间切换速度更快,可以减少服务器的闲置时间等。那么我们要在往高层次讲它也有一些缺点,比如一个多线程的程序在创建和销毁线程的时候是比较费资源的,举一个例子,我们要是自己是一个普通饭店老板,当顾客来了我们再
2015-08-05 19:16:49 2481 2
原创 几个简单的文本处理工具:diff,patch,grep,cut,sort,tr
1:文本处理工具: 1:diff and patch : diff是比较文件或者目录的不同,主要有3个用法: diff file1 file2 :比较file1和file2的不同;diff -u file1 file2 >file.path :比较他们的不同并且生成file.path的补丁文件;比较目录的不同:diff -r test1 test2 . patch :打补丁,这个
2015-08-04 23:34:49 1008
原创 线程私有数据TSD——一键多值技术,线程同步中的互斥锁和条件变量
一:线程私有数据:线程是轻量级进程,进程在fork()之后,子进程不继承父进程的锁和警告,别的基本上都会继承,而vfork()与fork()不同的地方在于vfork()之后的进程会共享父进程的地址空间,但是有了写实复制(fork()之后的子进程也不会直接复制父进程的地址空间在另一块内存,除非子进程修改了某种信息,才会在内存中为它重新复制一块区域)的出现之后,vfork()基本上就没什么作用了。但是线
2015-08-04 22:43:19 1687
原创 线程创建,属性设置与获得,等待线程结束,线程中fork,以及执行exec()
这篇博客的形式我想以分析代码不同情况为主: 点击(此处)折叠或打开 #includestdio.h> #includepthread.h> #includetime.h> #includeunistd.h>
2015-08-04 21:07:57 694
原创 linux top 命令详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面详细介绍它的使用方法。 top - 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zo
2015-08-04 21:07:46 630
原创 fork()和vfork()的区别,signal函数用法,exec()系列函数的用法小结
一:fork()和vfork()的区别: fork()函数可以创建子进程,有两个返回值,即调用一次返回两个值,一个是父进程调用fork()后的返回值,该返回值是刚刚创建的子进程的ID;另一个是子进程调用fork()后的返回值,该返回值为0。 vfork与fork不同的地方在于: 使用fork()创建子进程时:子进程只是完全复制父进程的资源,并且哪个进程先运行取决于系统的调度
2015-08-04 21:07:44 979
原创 Linux&C open creat read write lseek 函数用法总结
一:五个函数的参数以及返回值。 函数 参数 返回值 open (文件名,打开方式以及读写方式,文件的权限)
2015-08-04 21:07:36 984
原创 RedHat 7.0 Linux 下划分区,分区加密,配额,逻辑卷管理
1:如何划分区: 1:明确分区的对象:xxx :fdisk /dev/xxx 2:增加一个分区:n;选择主分区或者扩展分区,”p” or “e” ;默认地方开始,选择大小,+500M ;更改id,t,L:列出所有可能。 3:wq 退出保存,partprobe :重新读取分区信息。 4:删除分区用d . 2:划分出的分区如果想要挂载,必须首先格式化。可以格式化成不同的类型
2015-08-03 20:04:07 1015
ncurses_programs代码示例
2017-12-28
mysql-connector-c++-1.1.7-linux-glibc2.5-x86-64bit.rpm
2017-01-07
dosbox-0.74 无bug修复版(内含.EXE文件)
2016-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人