- 博客(61)
- 收藏
- 关注
原创 Docker原理之架构篇 --- 总体架构
Docker是典型的C/S架构,主要由docker-client和docker-daemon组成。docker-daemon的架构在不断演进中,将不同功能抽离成独立的模块,降低docker-daemon的复杂度。因此,不同版本docker对应的架构图、源码等可能都有所差异。文中出现的相关架构图、源码等都以Docker 1.10版本为主。...
2022-06-05 23:40:01 637
原创 Docker原理之限制篇 ---CGroups资源限制
CGroups的全称叫做 control groups,是由Google首创,并被合入Linux内核的一种资源限制机制。使用CGroups可以将一系列任务极其子任务整个到资源划分等级不同的组内,从而管理系统资源。通俗讲,CGroups可以限制和记录任务组所使用的物理资源(包括CPU、Memory、IO等)。CGroups对外以伪文件系统的方式提供API,用户态程序可以操作对应的文件以达到对CGroups的控制,其对于操作的单元可以细粒度到线程级别。.........
2022-06-04 01:18:37 1396
原创 Docker原理之隔离篇 --- namespace隔离简介
Linux内核提供的一种隔离机制,Docker就是使用内核namespace的隔离机制来实现对应的资源隔离。
2022-06-01 22:35:28 2126
原创 Golang 的大数运算 big.Int 一次赋值引发的血案
结论先行在进行 big.Int 类型的简单相互赋值过程中发生了浅拷贝,big.Int 类型数据存储的实体 []uint 并未发生变更,导致出现数据紊乱。问题引入在Golang中,标准库提供了big包用来进行大数运算。为了研究它的用法,我编写了下边这个小程序来验证它的特性。程序的逻辑很简单,初始化两个大数变量 a = 1 和 b = 2,然后使用中间变量法对 a 和 b 进行交换,交换完毕后再...
2019-09-08 23:53:42 5964 3
原创 自制miniwol程序
背景接上篇(记一次好玩的操作(内网远程控制主机启动))想一探究,自己做一个wol远程控制主机启动的小程序。获取wol发出的数据包wol 的全称是wake on lan,顾名思义,这肯定是一个网络程序,那么抓个包看看吧(由于不知道其用的什么协议,所以只能盲人摸象)。启动wireshark之后立刻执行 wol 00:24:1d:b2:3c:ca 命令,然后在wireshark界面中找到了如
2017-06-26 22:43:36 1020
原创 记一次好玩的操作(内网远程控制主机启动)
背景 最近搬进了3+1,发现有一点台式电脑可以玩玩,电脑本身也比较老了,所以就想着装个服务器吧,平使用在实验室用Windows时如果临时用用Linux也可以连接上来用。 最小安装完Centos 7之后想着如果能远程控制主机启动(一条命令or一个脚本)那简直是太棒了。Google之后发现可以使用wol来远程启动它(前提是电脑支持这样做)。实施1. 硬件检查&开启wake on lan开关使用
2017-06-20 22:22:51 1467
转载 内存泄漏检查工具valgrind的安装与使用
原文地址:http://blog.chinaunix.NET/uid-26000296-id-4161684.htmlPS:最近在阅读大牛博客的时候大牛提到了一款用于在Linux下检测程序内存泄漏的工具感觉挺好用的,遂将查到的资料做以记录(IBM这篇文章也很不错应用 Valgrind 发现 Linux 程序的内存问题)一、 安装1. autoconf# wget htt
2017-01-16 13:30:44 814
原创 C语言实现简单ARP欺骗小工具
在WireShark协议分析的学习过程学习了ARP协议的数据包格式,所以准备自制一个小小的ARP欺骗工具。在制作该工具前需要掌握如下知识: 一、ARP协议内容 ARP(Address Resolution Protocol)协议的基本功能是通过IP地址找到对应的硬件地址,ARP协议的工作过程是(假设A主机(IP:192.168.1.110、MAC:0A:11:22:33:44:01)要和B主
2016-08-03 14:18:22 13155 7
原创 WireShark学习笔记(二)数据包过滤
WireShark有捕获过滤器和显示过滤器两种过滤器,捕获过滤器可以在捕获数据包的时候就进行过滤,使得捕获的时候只进行过滤的数据捕获。显示过滤器在显示的时候进行过滤,使得显示的时候将捕获到的数据进行显示。 这两种过滤方式的优势显而易见,第一种可以减少捕获的数据包数量,从而减少系统的负荷。第二种可以捕获更多的数据包,只是在显示的时候过滤,这样可以在以后的分析中如果需要其他数据信息的话可以直接更改
2016-07-30 16:23:20 8596
原创 WireShark学习笔记(一)基础知识
WireShark作为简明的网络嗅探工具一直受到广大程序员的追捧,为了更好学习网络,所以准备学习一下这个神奇的工具,现总结如下。一、网络嗅探器工作原理收集:从网卡上收集二进制信息(将网卡设置成混杂模式完成抓包)转换:将捕获的二进制信息转换成可读形式。分析:对捕获和转换后的数据进行分析。二、七层OSI模型OSI参考模型是由国际化标准组织ISO提出的,OSI参考模型只是一个行业建议标准,协议开发
2016-07-30 10:20:45 5863
原创 EXT2文件系统简介
一、EXT2文件系统文件组织形式 EXT2文件系统是Linux系统中广泛使用的文件系统,该文件系统是一种索引式文件系统,它将分区分为inode和block,它会给每个文件分配一个inode,inode中存储文件的一些属性信息,block中存储文件真正的内容,一个block的大小有。大体存储如下图所示:
2016-07-25 22:17:01 2116
原创 Linux文件操作总结
文件在Linux乃至整个计算机系统中都是一个非常重要的概念。在Linux的系统编程中文件也是作为基础出现的,理解文件和文件系统有助于我们写出更安全、更高效、可读性更强的代码。学完Linux文件操作也一年了,上周因为要给小组大一的同学总结文件操作就又过了一遍感觉收获颇丰。在此做个记录。一、硬盘存储简介 文件是一堆有序数据的集合,文件的最终形态是存储在硬盘上,为了更好的理解文件系统,这里简单
2016-07-25 17:14:35 1011
原创 MySQL学习笔记----子查询、联结表、组合查询、全文本搜索
联结:一种机制,用来在一条SELECT语句中关联表,因此称之为联结。它在数据库中不存在。联结由MySQL根据需要建立,它存在于查询的执行过程中。创建联结:(使用WHERE联结)SELECT vend_name, prod_name, prod_priceFROM vendors, productsWHERE vendors.vend_id = products.ve
2016-04-21 22:17:45 1162
原创 LeetCode之24----Swap Nodes in Pairs
题目:Given a linked list, swap every two adjacent nodes and return its head.For example,Given 1->2->3->4, you should return the list as 2->1->4->3.Your algorithm should use only constant
2016-04-21 19:08:23 1735
原创 LeetCode之23---Merge k Sorted Lists
题目: Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.题目大意: 给定k条有序链表,求k条链表有序合并后的链表。思路: 看到这道题感觉蛮亲切的,因为已经不止一次遇到链表有序合并的问题了,所以思路还是有的。 第一
2016-04-20 23:43:45 809
原创 LeetCode之22----Generate Parentheses
题目:Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.For example, given n = 3, a solution set is:"((()))", "(()())", "(())()", "()(()
2016-04-20 19:57:17 1153
原创 LeetCode之21----Merge Two Sorted Lists
题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.题目大意: 给定两个有序的链表,求有序合并后的链表。思路: 链表有序合并也是
2016-04-17 16:59:54 3375
原创 LeetCode之20---Valid Parentheses
题目:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.The brackets must close in the correct order, "()" and "()[]{}" are
2016-04-16 22:47:36 1004
原创 LeetCode之19---Remove Nth Node From End of List
题目:Given a linked list, remove the nth node from the end of list and return its head.For example, Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the e
2016-04-16 14:33:12 3208
原创 LeetCode之18---4Sum
题目:Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.Note:
2016-04-16 00:00:20 1090
原创 MySQL学习笔记---基础概念和一些基础SQL语句(一)
MySQL学习笔记,以防遗忘数据库基本概念数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。表:某种特定类型数据的结构化清单,数据库中的表都有一个唯一的名字用来标识自己。模式:关于数据库和表的布局及特性的信息。列:表中的一个字段。所有表都是由一个或多个列组成,每个列都有对应的数据类型。行:表中的一个记录。主键:一列(或一组列),其值能够唯一区分表中每个行(每条
2016-04-14 20:11:15 2734 1
原创 LeetCode之17----Letter Combinations of a Phone Number
题目:Given a digit string, return all possible letter combinations that the number could represent.A mapping of digit to letters (just like on the telephone buttons) is given below.Input
2016-04-14 18:46:32 3385
原创 三角形数字问题
题目: 给定一个数字三角形,找到从顶部到底部的最大路径和。每一步可以移动到下面一行的相邻数字上。输入第一行数字n是三角形的行数,接下来的n行是数字三角形的每一行,如: 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 输出是 30思路: 1、递归+记忆法 用二维数组存储数字三角形中的每一行,不难发现,每个数
2016-04-13 17:06:55 869
原创 LeetCode之16----3Sums Closest
题目:Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would hav
2016-04-12 19:14:02 1169
原创 LeetCode之15----3Sum
题目:Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero.Note:Elements in a tripl
2016-04-11 22:00:13 882
原创 字典序问题
题目: 字典序问题,给定一个长度不超过6的小写字母升序字符串(字符串中的字符相对顺序和字母表中的顺序一致),迅速计算出在字典中的编码,字典如: 1 2 3 ... 26 27 28 ... a b c ... z ab ac ...思路: 总体思路为先计算出给定字符串前所有的个数,然后再加一代
2016-04-10 23:03:53 882
原创 LeetCode之14---Longest Common Prefix
题目: Write a function to find the longest common prefix string amongst an array of strings.题目大意: 写一个函数,求一个字符串数组中最长的公共前缀子串。思路: 在做这道题之前先要了解一下什么叫做公共前缀子串。在英语中一个单词可以分为前缀、词根、后缀三部分,所谓前缀就是指在单词的开
2016-04-10 14:21:28 2498
原创 LeetCode之13---Roman to Integer
题目: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.题目大意: 给定一个罗马数字,将其转化为一个整数。转化好的整数的范围在1---3999之间。思路: 有了上一题的经验,我们可以将待转化的罗马数
2016-04-09 19:42:43 741
原创 LeetCode之12---Integer to Roman
题目: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 to 3999.题目大意: 输入一个整形数字,将其转化为罗马数字,范围在1--3999之间。思路: 在做此题之前特意谷歌了一下罗马数字是什么鬼,因为之前只认识
2016-04-09 15:49:41 2243
原创 LeetCode之11---Container With Most Water
题目: Given n non-negative integers a1, a2, ..., an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i
2016-04-08 18:00:01 1332
原创 LeetCode之10 --- Regular Expression Matching
题目: ,Implement regular expression matching with support for '.' and '*'.'.' Matches any single character.'*' Matches zero or more of the preceding element.The matching should cover the ent
2016-04-07 20:22:49 1001
原创 LeetCode之9---Palindrome Number
题目: Determine whether an integer is a palindrome. Do this without extra space.题目大意: 判断一个数字是不是回文数,要求不是用额外的空间。思路: 最近的几道LeetCode的题很简单,答题思路就是将原数字翻转然后和原数相比较,如果相等则返回true,否则返回false。但是以前边几道题的尿性来看
2016-04-05 22:02:08 687
原创 LeetCode之8----String to Integer (atoi)
题目: Implement atoi to convert a string to an integer.题目大意: 将一个数字字符串转化为整数数字,返回整数数字。思路: 初看本题觉得很简单,直接用一个循环进行转换就行了,循环里边的语句也很简单,就是result = result * 10 + s[i] - '0',但是提交之后就轰轰烈烈的错了。原来是因为我没有考虑各
2016-04-05 19:53:14 608
原创 LeetCode之7 --- Reverse Integer
题目: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321题目大意:逆置一个整数,如:123--->321 -123--->-321思路: 这道题比较简单,和回文数的解法一致,只不过比回文数少了一个判断而已。具体思路是循环执行r
2016-04-04 18:41:53 629
原创 LeetCode之6---ZigZag Conversion
题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to display this pattern in a fixed font for better legibility)P A H
2016-04-04 15:19:39 625
原创 LeetCode 之 5 ---- Longest Palindromic Substring
题目: Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.大意:
2016-04-03 21:14:08 599
原创 LeetCode之4---Median of Two Sorted Arrays
题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).大意: 两个已
2016-03-31 23:53:05 589
原创 LeetCode之300—-Longest Increasing Subsequence
题目:Given an unsorted array of integers, find the length of longest increasing subsequence.For example,Given [10, 9, 2, 5, 3, 7, 101, 18],The longest increasing subsequence is [2, 3, 7, 101
2016-03-30 19:03:02 768
原创 数组中位数
题目:将两个等长有序数组的中位数,要求时间复杂度为O(logn)。思路:大体思想是:比较两个数组的中位数 (1)、如果相同则该值就是中位数 (2)、如果num1 则中位数位于num1的后半部分或num2的前半部分 (3)、如果num1 > num2则中位数位于num1的前半部分或num2的后半部分 (4)、一直执行(2)和(3)直到数
2016-03-29 22:08:58 1027
原创 链表中一些有趣的小题目总结
1、单链表中间结点问:如何快速查找定位到一条单链表的中间结点?答:(1)、可以将链表中的所有结点遍历一遍得到总个数,再查找到中间结点(这不废话嘛,这么low的答案就不拉出来献丑了=、=)(2)、可以使用快慢指针法,一个指针一倍速率遍历,另一个指针两倍速率遍历链表,当第一个走到末尾时第二个则刚好在中间位置代码:NODE *Search(NODE *pHead)
2016-03-28 23:45:09 794
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人