本文github库:https://github.com/xiaoemoxiw/docker.g 国内码云库:https://gitee.com/jlgg/docker.gi...
使用原则 库自带连接池,使用方不需自行实现。*sql.DB 线程安全,开箱即用,屏弊了底层创建连接的实现 Open 只是创建类,调用一次即可,使用前需要 Ping 确保连接正...
1.0版本的select已经看过了,2.6中已经完全重构了,代码每次看都好像懂了,但每次回忆核心流程又感觉有点勉强,我希望通过一种关键流程的形式去分析,而不是贴一大堆的代码 ...
阅读源码的过程中有大量使用到宏,所以作为开篇,其中有很多宏功能极其强大但也很晦涩难懂,本文不对宏思路做细致分析,因为网上基本上都能找得到,那么这篇应该算一个索引吧,只是为了本...
在linux中使用了分页机制,分页机制把线性地址空间分成固定大小的页面,如果包含线性地址的页面当前不在物理内存中,处理器就会产生一个页错误异常。然后交给内核处理。 在init...
趁着linux内核看得差不多了,想着把网络部分拿来看看,从1.0版本后就开始支持网络了,但看了下发现很多概念不清晰,决定找出tcp-ip学习学习,为内核网络部分做做准备。这些...
先说说内核的职责 我们已经知道了所有的io操作都是交给内核去处理了,在linux中,已经抽象出了一个文件系统,对任何io设备的读写都可以当做对文件系统的某一个文件进行读写。文...
go func...会被编译成newproc方法,我们可以随便写一个测试文件编译后用gdb打开 golang的参数调用方式和C差不多,都是按参数从右到左入栈,所以siz是第一...
chan是go中csp的关键,网上一直说chan性能一般,因为用到了锁,我就找来源码研究了一下 我们先看chan对象结构,发现有一个lock的锁字段 那我们直接看发送和接收方...
对于写后端语言来说的人,文件操作是很常见的。go对文件操作的支持非常的好。今天通过go中文件操作记录下syscall相关内容。 先看下文件定义: 是不是够简洁的,而且注释写的...
推荐这篇文章https://www.cnblogs.com/xumaojun/p/8547439.html
go的方法可以直接返回局部变量的指针,这主要依赖go是有runtime的语言,编译器在发现有变量可以逃逸出去的时候会在堆上分配变量而不是栈上,这样就可以返回该变量的指针了,且...
今天看go的runtime的时候,内存堆初始化的时候是调用mmap申请的虚拟内存,于是搜了下0.11的linux源码,发现还没有实现,就又找了1.0版本的(毕竟越早代码越少都...
计算机的世界只有0和1,为了表示浮点数,就必须要对其编码。现在大家基本上用的都是IEEE浮点编码表示,它分为单精度和双精度两种编码格式,顾名思义,双精度能表示更大的精度。 单...
6.1 都有6bit的opcode 只有三种指令类型(R,I,J ) 每种指令都是32位 6.2 可以,可以让所有的操作都操作内存。比如add 0x10,0x20,0x24,...
MIPS体系结构设计4个准则 简单设计有助于规整化 加快常见功能 越小的设计越快 好的设计需要好的折中方法 两种设计理念的计算机 MIPS(Reduced Instructi...
1.抽象、层次 计算机领域充分发扬了抽象与层次化的理念 2. 有符号的二进制数 原码:采用我们生活中最容易接受的方式,最高为代表符号位,剩下的代表数值的绝对值位。如1001,...
块设备在linux中的分类 块设备通俗点就是可以随机寻址的设备,内存,软盘,硬盘这些都是块设备。linux给外设分了几个大类别1代表内存设备,2代表软盘,3代表硬盘,4代表t...