今天八月三十一了。。。暑假要结束了虽然感觉甚至没有暑假。现在回忆一下这一个月来的生活,下面进入碎碎念模式。。 啊,其实感觉和其他人相比我算是比较舒服的了,毕竟可以天天晚上回家吹空调233333333,每天早上六点五十起床,一共留校了四周前两周半基本都是七点二十就到学校了。后一周半基本上就是赶五十前到了,emmmm,来的早也进不去。每天十点往家走,到家差不多十点半了,洗个澡就睡了该追的番剧还是得追。话说这一个月有好好吃早饭,平时在学校基本没吃过早饭的。中午第一周跟着大家一起定的快餐,但是很奇怪,每次都会拿到不爱吃的豆芽菜和青椒,明明别人都没有的,我脸怎么这么黑。。。于是后来就自己点外卖了,周先生的饭性价比很高,就是米饭的味道有些微妙,晚饭前两周还有去民餐吃的,后来因为发现自己的体重又上升了于是晚饭戒了。中途还回过几次宿舍,发现开始修浴室了,这真是个好消息,下午终于不用纠结穿着人字拖拿着洗澡的东西是先去吃饭还是先洗澡了。自从换了地方后发现了学长留下的键盘,于是借用了一段时间,哇,机械键盘用起来真是爽啊,笔 继续阅读 >>


田正东 18/08/31 01:35:11
Xv 6 Chapter 0 Operating system interfaces 操作系统的工作是分享电脑资源给多个程序,并且提供一系列服务而不是只让硬件提供。 操作系统通过接口给用户程序提供服务,所以设计一个好的接口就显得很重要。 这里操作系统xv6提供基础的接口,由Ken Thompson 和Dennis Ritchie的操作系统介绍,同时还有模仿Unix的内部设计。 每一个运行的程序叫做进程,他们都有自己的空间,其中包括指令,数据和栈。指令实现了程序的计算功能,数据是那些计算中的变量。而栈则决定了程序的运行。 当一个进程需要请求内核指令的时候,他会在操作系统的接口中请求一个程序。这样的程序叫做系统调用。系统调用进入到内核,内核就提供服务并且返回。因此一个进程在用户内存和内核内存中互相切换。 内核使用CPU的硬件保护机制来保证每个进程在用户内存中运行并只能访问自己的空间。内核运行的时候利用硬件提供的特权来实现这些保护,同时用户程序没有这些优先权。当一个用户程序请求系统调 继续阅读 >>


陈苏扬 18/08/28 15:50:27
本文所有源码来自 JDK 1.8.0_181 HashMap简介 Map是Key-Value对映射的抽象接口,Map用于保存具有映射关系的数据。Map集合里有两组值,一组值用于保存Map里的key,另外一组值用于保存Map里的value,key和value都可以是任何引用类型的数据。key不允许重复,key和value之间存在单向一对一关系,通过key能找到相应的value。 HashMap是基于哈希表的Map接口的实现,以Key-Value的形式存在,即存储的对象是Entry(同时包含了Key和Value)。在HashMap中,根据hash算法来计算key-value的存储位置并进行快速存取。最多只允许一条Entry的键为Null,但允许多条Entry的值为Null。此外,HashMap是线程不安全的。 结构示意 当链表达到一定长度时会进行树化。 理想状态下哈希表的每个箱子中,元素的数量遵守泊松分布: 当负载因子为 0.75 时,上述公式中 λ 约等于 0.5,因此箱子中元素个数和概率的关系如 继续阅读 >>


李猛 18/08/24 15:25:44
   最近学弟学妹们在写聊天室,期间遇到了很多问题,也“逼迫”我们这些大二(其实即将大三)狗考虑了许多以前没有考虑过的东西。现在就着我们小组的聊天室的项目,送给学弟学妹们”几个可能安全的封装函数。“ frist : 保证发送“len”字节到套接字 ssize_t Sendlen(int fd, const void *buf, size_t len, int flags) { ssize_t n = 0; size_t sum = 0; const char *ptr; ptr = (const char *)buf; while (sum < len) { n = send(fd, (void *)ptr, len - sum, flags); if (n < 0) { if (errno == EINTR) n = 0; 继续阅读 >>


刘生玺 18/08/23 16:45:01
一、相关时间函数 1. gettimeofday() 2. time() 3. clock() 二、间隔定时器 1. setitimerval() 2. getitimerval() 3. 实时定时器的使用 三、为阻塞操作设置超时 1. alarm() 2. 给read()设置读超时 一、相关时间函数 1. gettimeofday() 获取日历时间。 #include <sys/time.h> int gettimeofday(struct timeval *tv, struct timezone *tz); timeval结构体 struct timeval { time_t tv_sec; // 秒 suseconds_t tv_usec; // 微秒(long int) }; 2. time() 返回自Epoch(格林威治标准时间1970.01.01 0:00 继续阅读 >>


王良 18/08/23 09:43:00
1. 基础介绍   最通用的I/O函数,只要设置好参数,read、readv、recv、recvfrom和write、writev、send、sendto等函数都可以对应换成这两个函数来调用。同时,各种输出函数调用也可以替换成sendmsg调用。 #include <sys/socket.h> ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags); ssizt_t sendmsg(int sockfd, struct msghdr *msg, int flags); 大部分参数都在 msghdr结构中 struct iovec { /* Scatter/gather array items */ void *iov_base; /* Starting address */ size_t iov_len; /* Number of bytes to transfe 继续阅读 >>


刘生玺 18/08/22 20:28:00
Preface 总结一下TCP连接的三次握手过程,连接释放的四次挥手过程,以及其原生的缺陷引起的SYN Flood的简单介绍。 目录 Preface 目录 TCP连接建立——三次握手 几个概念 三次握手过程 为什么是三次握手? 缺陷引起的SYN Flood SYN Flood 攻击 SYN Flood 防护措施 TCP连接释放——四次挥手 挥手过程 为什么建立连接是三次握手,关闭连接却是四次握手? 为什么TIME_WAIT状态还需要等2MSL? 关闭TCP连接一定需要4次挥手吗? TCP连接建立——三次握手 几个概念 seq:序号,占4个字节,范围[0,4284967296],由于TCP是面向字节流的,传送的数据流中的每一个字节都编上一个序号,序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。此外序号是循环使用的 ACK: 仅当ACK=1时确认字段才有效,当ACK=0时确认字段无效,并且TCP规定,在连接建立后所有的传送报文段都必须要 继续阅读 >>


冯鑫 18/08/22 00:28:55
一、被中断的系统调用(EINTR)的理解 1. 慢系统调用是? 2. 慢系统调用的类别 3. EINTR产生的原因 5. 一般处理方法 二、SIGCHLD信号的处理 1. SIGCHLD信号的产生 2. SIGCHLD信号的处理 3. 不处理SIGCHLD的后果 三、示例代码 一、被中断的系统调用(EINTR)的理解 1. 慢系统调用是? 慢系统调用指可能永远阻塞的系统调用。 也就是处于阻塞状态的系统调用,如果不收到需要的信息,就会一直阻塞在那里。例如accept:在服务器等待客户端建立连接时,如果没有客户端来请求连接,那么accept就会一直阻塞,直到有客户端请求连接为止。像这种系统调用,就称为慢系统调用。 2. 慢系统调用的类别 对管道的读写 对终端设备设备的读写 对网络连接的读写 …… 值得注意的是,读写磁盘文件一般不会阻塞,一般会返回给调用者(在没有硬件故障的条件下) 3. EINTR产生的原因 当阻 继续阅读 >>


王良 18/08/20 15:11:16
终端输入 sudo netease-cloud-music 但是这意味着终端不能关闭, 而且每次都要这样实在是麻烦, 发现是 sudo, 那肯定是权限问题了, 所以只要更改网易云的执行权限就好了 打开 /usr/share/applications 目录, 在下面找到网易云 ( netease-cloud-music.desktop ) 更改其执行权限sudo chmod 777 netease-cloud-music.desktop (每个人都有读和写以及执行的权限) 重启 OK了 作者:weixin_36888577 发表于 2018/08/20 11:28:51 原文链接 https://blog.csdn.net/weixin_36888577/article/details/81868462 继续阅读 >>


吕子健 18/08/20 11:28:51
引入 与很多高校一样,西安皇家邮电大学一直钟爱于正方教务管理系统。 前一段时间爬了学校的旧版的教务系统,旧版主页 想了解更多请点击这里:爬取学校教务系统获取学生信息 不知道学校是不是把装空调的拿去买新教务系统了,新教务系统主页 可以看出,学校用的仍然是正方教务系统,不过版本升级了,新教务系统是用Java写的后台,前端用了Bootstrap框架。与旧系统相比,界面美观大方,易用性也明显提高。 准备 模拟登陆前,我们首先要清楚需要提交那些数据。 打开F12,我们在访问主页时,除了加载了JS的HTML还向服务器发送了一个get请求。 直接访问它可以获取一个json: {"exponent":"AQAB","modulus":"AIMNm8zi5XkWLRDUy7w6bjypS+d8ng7an00UYH8UZMhUvrDAvpuifsFu+rU6dmMFQHpHGo9ZlyEy9GWy6ev3s8ro15869OIKo\/nwexEnb8AD0DO7NaV9jzDjqRj 继续阅读 >>


李猛 18/08/20 10:00:19