stemha / stemha.github.io Goto Github PK
View Code? Open in Web Editor NEW我的个人主页/my github pages
Home Page: https://stemha.github.io/
我的个人主页/my github pages
Home Page: https://stemha.github.io/
传输层 传输层是客户程序和服务器程序之间的联络人,是一个进程到进程的连接。 传输层是TCP/IP 协议簇中的核心; 它是因特网上从一点到另一个点传输数据的端到端逻辑传输媒介。
基本结构 标题 真实反应论文内容 简短明了 吸引人 大背景 小背景 技术特色
概述 当内核被编译时,就已经确定了可以支持哪些文件系统,这些文件系统在系统引导时,在 VFS 中进行注册。如果文件系统是作为内核可装载的模块,则在实际安装时进行注册,并在模块卸载时注销。 VFS的初始化函数用来向VFS注册,即填写文件注册表file_system_type数据结构。每一个文件系统类型在注册表中有一个登记项,记录该文件系统的类型名、文件系统特性、指向对应的VFS超级块读取函数的地址
https://stemha.github.io/2020/04/14/Linux%E7%B3%BB%E7%BB%9F%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84/
/bin (binary)目录存放着最经常使用的命令
前言VFS(虚拟文件系统)四大对象:struct super_block 超级块、struct inode 索引节点、struct dentry 目录项、struct file 文件对象VFS采用的是面向对象的设计**,使用一簇数据结构来代表通用文件对象。所以内核中的数据结构都使用C结构体实现。 超级块super_block对象,代表一个具体的已安装文件系统。 索引节点inode对象,代表一个具
https://stemha.github.io/2020/07/13/Linux%E6%A8%A1%E5%9D%97%EF%BC%88modules%EF%BC%89/#more
前言Linux 是一个整体式的内核(Monolithic Kernel)结构,也就是说,整个内核是一个单独的、非常大的程序。 从实现机制来说,我们又把它划分为5个子系统(前一篇文章有介绍),内核的各个子系统都提供了内部接口(函数和变量),这些函数和变量可供内核所有子系统调用和使用。 Linux 的整体式结构决定了要给内核增加新的成分也是非常困难,因此Linux 提供了一种全新的机制—可装入模块
我们需要知道什么? GDB是什么?有什么作用呢?GDB的用法有哪些?
https://stemha.github.io/2020/04/20/Linux%E6%A6%82%E8%BF%B0/#more
Linux设计目标Unix被设计成为一种能够同时处理多进程和多用户的交互式系统,Linux继承了Linux的设计目标。
编译内核需要做什么? 查找并且下载一份内核源代码 配置内核。 编译内核和模块。 配置启动文件。
https://stemha.github.io/2020/06/29/Linux%E5%86%85%E6%A0%B8%E9%A9%B1%E5%8A%A8/#more
设备文件类Unix操作系统都是基于文件概念的。 可以直接把I/O设备当作设备文件(device file)来处理。 操作普通文件的系统调用也可以直接用于I/O设备。
https://stemha.github.io/2020/06/02/%E7%BA%A2%E9%BB%91%E6%A0%91%E8%AF%A6%E8%A7%A3/#more
二叉查找树学习红黑树之前,先理解一下二叉查找树。
https://stemha.github.io/2020/03/28/hello-world/#more
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub. Quick
原文介绍网络信息空间的大数据计算 作者:胡春明、马帅、怀进鹏 ,**计算机学会通讯我们需要知道什么? 大数据有什么特征?怎么产生的?这些特征带来了哪些影响?大数据时代的研究方法是不是要变化一下?有了大数据,我们需要用它来做计算,那么大数据计算在不同的层次(数据-算法-系统)又会遇到什么样的挑战?
https://stemha.github.io/2020/06/01/deque%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/#more
概念Deque(双向队列) 和Queue差不多 ,但是特殊的是Deque可是扩充内存。(实际上连续内存的容器不能随意扩充,所以Deque也不是真正意义上的扩充内存,而是封装了底层的表象。 Deque是由一段段构成的,当走到尾端时自动跳到下一段,(支持迭代器++操作)。 每次扩充,就会申请一个段,从而实现了内存连续的假象。 默认的stack 和 queue 都基于 deque 容器实现, pri
https://stemha.github.io/2020/06/21/STL-%E5%A0%86%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/#more
基本概念 STL中并没有把heap作为一种容器组件,heap的实现亦需要更低一层的容器组件(诸如list,array,vector)作为其底层机制。 Heap是一个类属算法,包含在< algorithm >中。 STL中关于heap默认调整成的是大顶堆,可以用自定义的compare_fuction函数实现大顶堆或小顶堆。 heap的低层机制vector本身就是一个类模板,heap
https://stemha.github.io/2020/05/24/STL%E6%8E%92%E5%BA%8F%E7%9B%B8%E5%85%B3%E5%BA%93/#more
sort函数声明 12345template void sort (RandomAccessIterator first, RandomAccessIterator last); template <class RandomAccessIterator, class Compare> void sort (R
说明:本文是梁启超于1922年应苏州学界邀请作的一场演讲。当时,他向在座者提出了一个问题:“为什么进学校?”。而后,他给出的答案是:进学校为的是求学问,求学问为的是学做人。而要成为一个人,总要具备三德:智、仁、勇,实现的状态便是“智者不惑,仁者不忧,勇者不惧”。演讲距今虽然已经过去快一个世纪,但是观点仍然具有很强的穿透力,值得大家好好读一读。
https://stemha.github.io/2020/05/01/%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%881%EF%BC%89/#more
基础概念文件系统:操作系统中处理文件的部分,有关文件的构造,命名,存取,使用,实现和管理都是操作系统文件系统设计的主要内容
套接字的数据结构C 语言将套接字定义为一个结构(struct)。套接字结构由五个字段组成;每个套接字地址是一个由五部分构成的结构。
https://stemha.github.io/2020/03/29/%E5%A5%BD%E7%94%A8%E7%9A%84chrome%E6%8F%92%E4%BB%B6/
深刻体会到工具的好用,有一些问题使用工具真的省力,关键是学会如何找到这些工具和如何描述自己的相关需求。 Awesome Autocomplete for GitHub增强github的搜索功能 Git History Browser Extension查看github的历史更新记录,超级好用,可以对比不同人对代码做的更新; octotree可以查看github的目录结构,并且下载单个的文件;
静态性能分析工具(static performance analysis tools) dmesg 用于显示开机信息,开机信息也保存在/var/log目录中,名为dmesg的文件里。 blockdev 工具允许从命令行调用区块设备控制程序。调用设备的ioctl函数。似乎Linux中对设备的直接操作只有ioctl函数。 ldd (List Dynamic Dependencies,意译为列出动态库
https://stemha.github.io/about/
关于博主博主是目前是一名在在校的计算机研究生(master student),为未来而学习着,成长着。专业是计算机系统结构。目标是能够怀着求知与探索的品质,能够对社会有所贡献,在信息化浪潮中搏一番自己的精彩。 在此奉上牛顿的名言: 我好像是一个海边玩耍的孩子,不时为拾到比通常更光滑的石子或更美丽的贝壳而欢欣鼓舞,而展现在我面前的是完全未探明的真理之海。 关于博客博主搭建了这个博客主要是为了记录
https://stemha.github.io/2020/05/21/%E5%8D%95%E4%BE%8B%E6%A8%A1%E5%BC%8FC-%E5%AE%9E%E7%8E%B0/#more
单例模式singleton patternpurpose:使得一个类只能有一个实例,并提供一个全局访问的位置probliem:遇到实例的频繁创建和销毁时,效率低solution:创建时候检测实例是否存在key code:构造函数是私有的
linux设计** Linux作为一个最著名的自由软件,几乎处处体现了“自由”的**,你可以编译适合自己系统要求的内核,或者轻松添加别人开发的新的模块。只要你有实力,你还可以自己写一个新的Linux 支持的文件系统。Linux 不仅支持多种文件系统,而且还支持这些文件系统相互之间进行访问。Linux成功的关键因素之一是它具有与其他操作系统和谐共存的能力,你能够透明的安装具有其他操作系统文件格式的磁
前言Linux内核也是一个抢占式多任务内核。这意味该内核可以暂停一些任务来保证任何应用都有机会来使用CPU。比如: 如果一个应用正在运行但是正在等待一些数据,内核会把这个应用暂停并允许其他的程序使用新释放的CPU资源,直到数据到来。 否则的话,系统就会浪费资源给那些正在等待数据或者其他程序执行的的任务。 内核将会强制程序去等待或者停止使用CPU。没有内核的允许,应用程序不能脱离暂停或者使用CPU。
伊甸园 在某个时刻事物必然从无到有你是谁?世界从何处来? 要么一直存在 要么从无到有 比如空间是由某样东西变成的,那么那样东西必然也是由另外一样东西变成的。一直推下去,那么必然是在某一时刻,事物从无到有。 生死这两件事就像钱币的两面,被我们的思考翻来翻去的时候,当一面变得更清晰的时候,另外一面也随之变得更大而清晰。
https://stemha.github.io/2020/07/14/Linux-%E4%BF%A1%E5%8F%B7/#more
前言信号是什么? 信号(signal)是很短的消息(通常是一个数,以此来标识信号),可以被发送到一个进程或一组进程。信号可以干什么? 信号在最早的Unix系统中即被引入,用于在用户态进程间通信。内核也用信号通知进程系统所发生的事件。
算法处理的数据在内存中的格式是什么?我们希望数据是结构化的,方便读取,因此计算机科学家发明了数据结构
《复杂》简单讲述了复杂系统科学尝试去回答的迷人与令人费解的问题的一部分。 度量一个事物或过程的复杂性的三个维度描述它有多困难 产生它有多困难 其组织程度如何
https://stemha.github.io/2020/05/20/list%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/#more
基本概念list 底层数据结构为双向链表,支持快速增删 缺点是无法通过位置来直接访问序列中的元素,也就是说,不能索引元素。为了访问 list 内部的一个元素,必须一个一个地遍历元素,通常从第一个元素或最后一个元素开始遍历。 节点对象维护了两个指针,一个指向前一个节点,另一个指向下一个节点。 第一个元素的前向指针总是为 null,因为它前面没有元素,尾部元素的后向指针也总为 null。
https://stemha.github.io/2020/06/03/B%E6%A0%91%E4%B8%8EB+%E6%A0%91%E8%AF%A6%E8%A7%A3/#more
基本概念多路搜索树(multi-way search tree): 将传统的二叉搜索树,改造为多路搜索树——在中序的遍历下,这也是一种等价变换 以k层为间隔如此重组,可以将二叉搜索树转化为等价的2^k路搜索树,统称为多路搜索树。 多路搜索树同样支持查找等操作,而且效果与原来的二叉树完全等同;但是重要的是,其对外存的访问方式已经发生本质变化,是以大节点为单位从外存读取一组(而不是单个)关键码。
引言 人生就是漫长的练习第1章 学习开始当你弄懂了练习的正确原理,学习某些新事物的任务将变成一种没有压力的愉快与平和的体验,变成一个适合你生活中各种领域的过程,并且促成你对生活中所有的艰辛与痛苦采用合适的视角来观察。
https://stemha.github.io/2020/05/19/vector%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/
vector初始化方法123vector vec; 初始化size为0的vectorvector vec(10); 初始化size为10,默认值都为0的vectorvector vec(10,1); 初始化size为10,值都为1的vector
https://stemha.github.io/2020/06/06/string%E5%B8%B8%E7%94%A8%E6%93%8D%E4%BD%9C/#more
基本概念标准库 string 类型:string 类型支持长度可变的字符串,C++ 标准库将负责管理与存储字符相关的内存,以及提供各种有用的操作。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。size_type是一个依赖于实现的整型,是在string中定义的。string类将string::npos定义为字符串的最大长度,通常为unsigned int的最大值。另外,使用缩写N
同类的东西,学习起来找共性就好了。学习Linux设备驱动,需要寻找各种驱动程序与系统的共性,探索其中的规律;
我们需要知道什么? 进程的概念在UNIX中的表现就是一组程序竞争系统资源的行为。内核是如何通过程序文件的内容建立进程的执行上下文?一个程序执行的上下文到底是什么呢?
TCP状态表 状态 说明 状态 说明 CLOSED 没有连接存在 FIN-WAIT-2 首个FIN 的ACK 已被接收;等待第二个FIN LISTEN 接收到被动打开;等待SYN CLOSE-WAIT 首个FIN 被接收,ACK 被发送;等待应用关闭 SYN-SENT SYN已被发送;等待ACK TIME-WAIT 第二个FIN 被接收,ACK 被发送;等待2MSL 超时 S
概述 Linux块设备处理程序的组织是相当复杂的,在此不可能详细介绍内核块设备I/O子系统中包含的所有函数我们主要说明下面几个问题: Linux块设备I/O子系统的体系结构是什么? 块设备I/O子系统的主要组件有哪些?有哪些作用? 打开一个块设备文件时内核执行的步骤有哪些? 内核如何对块设备和块设备的请求进行管理?->这部分在内核中称为块I/O层
https://stemha.github.io/2020/07/13/Linux%E5%86%85%E6%A0%B8%E7%9A%84%E7%BB%84%E6%88%90/#more
概述Linux内核主要由进程调度(SCHED)、内存管理(MM)、虚拟文件系统(VFS)、网络接口(NET)和进程间通信(IPC)5个子系统组成。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.