Linux内核-进程间通信组件的实现

Linux内核的五大组件一个完整的Linux内核一般由五大部分组成,他们分别是内存管理,进程管理,进程间通信,虚拟文件系统和网络接口。一、内存管理内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。二、进程管理进程管理主要控制系统进程对CPU的访问。当需...阅读全文

简书 2020-10-31 18:32:41 Java永远滴神

彻底弄清Golang中[]byte与string转换

string类型和[]byte类型是我们编程时最常使用到的数据结构。本文将探讨两者之间的转换方式,通过分析它们之间的内在联系来拨开迷雾。 两种转换方式 标准转换 go中string与[]byte的互换,相信每一位gopher都能立刻想到以下的转换方式,我们将之称为标准转换。 // string to []byte s1 := "hello" b := []byte(s1) // []byte to string s2 := string(b) 强转换 通过unsafe和reflect包,可以实现...阅读全文

简书 2020-10-31 18:32:40 机器铃砍菜刀s

英文检索数据库谷歌学术一招搞定

导言谷歌学术是大家平时经常使用的一个英文检索数据库,但是由于网络原因,国内一直需要使用各种方法解决打开网址的难题。其中最常见的是在浏览器中添加插件,从而打开谷歌学术浏览器网址。之前我们推荐了一个谷歌浏览器插件“Ghelper 上网助手”,今天我们再推荐一个谷歌学术插件——iGG谷歌访问助手,这个插件免费提供高速访问: google搜索、gmail、chrome商店 ,以及 Golang、Tensorflow、Android等开发者等谷歌服务。微软 onedrive 加速。软件谷歌浏览器插件 图文...阅读全文

简书 2020-10-31 16:32:41 WOSCI沃斯编辑

Linux内核-进程间通信组件的实现

Linux内核的五大组件一个完整的Linux内核一般由五大部分组成,他们分别是内存管理,进程管理,进程间通信,虚拟文件系统和网络接口。一、内存管理内存管理主要完成的是如何合理有效地管理整个系统的物理内存,同时快速响应内核各个子系统对内存分配的请求。Linux内存管理支持虚拟内存,而多余出的这部分内存就是通过磁盘申请得到的,平时系统只把当前运行的程序块保留在内存中,其他程序块则保留在磁盘中。在内存紧缺时,内存管理负责在磁盘和内存间交换程序块。二、进程管理进程管理主要控制系统进程对CPU的访问。当需...阅读全文

Segmentfault 2020-11-02 15:32:34 深度Linux

一文解读计算机专业Python校园招聘

作为一个刚刚参加完秋招的学生,我希望把整个校园招聘的流程以及经历的事情记录下来,留给学弟学妹参考。相信很多学弟学妹对于未来的面试、就业充满了疑问和憧憬。而在学校是完全接触不到这些东西的,学校也不会开设任何就业指导相关的问题,对于没有任何经验的我们来说,绝大多数同学都是一边搜集各种资料,一边向学长学姐请教,再身体力行地去尝试和探索,最终完成了整个校园招聘流程。摸索校园招聘的过程,本质也是一种社会中的闯荡与学习。校园招聘对于不同人的意义是不同的:对公司来说是一个流程,对同学来说是一场比赛,对个人来说...阅读全文

简书 2020-10-31 14:32:38 架构师圈子

又又又一个gin demo 项目,带你快速上手用gin进行web开发

ffly-plus又又又一个gin demo项目,带你快速上手用gin进行web开发, 在这个demo项目中,你可以学到项目结构设计、gorm的使用、gin中间件的编写、DB设计规范、Swagger文档生成、配置文件解析库viper使用、使用JWT进行身份鉴权认证、使用sentinel-go进行QPS限制、Makefile文件编写、项目文档结构设计和相关内容编写github: https://github.com/colinrs/ff...ffly-plus一款适合于快速开发业务的 Go Gin...阅读全文

Segmentfault 2020-11-02 14:32:34 djjk

LeetCode(4) 寻找两个正序数组的中位数

给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的中位数。进阶:你能设计一个时间复杂度为 O(log (m+n)) 的算法解决此问题吗?思路:看到这道题的第一个思路是使用类似归并排序的方式,将两个数组合并成一个有序数组,在对这个有序数组求中位数。func findMedianSortedArrays(nums1 []int, nums2 []int) float64 { nums := newNums(nums1, nums2) if ...阅读全文

Segmentfault 2020-11-02 14:32:34 xbdyhh

使用Go进行io_uring的动手实践

在Linux中,系统调用(syscalls)是一切的核心。 它们是应用程序与内核交互的主要接口。 因此,至关重要的是它们要快。 尤其在后Spectre / Meltdown后世界中,这一点尤为重要。如果觉得看完文章有所收获的话,可以关注我一下哦知乎:秃顶之路 b站:linux亦有归途 每天都会更新我们的公开课录播以及编程干货和大厂面经或者直接点击链接c/c++ linux服务器开发高级架构师来课堂上跟我们讲师面对面交流需要大厂面经跟学习大纲的小伙伴可以加群973961276获取大部分系统调用都处...阅读全文

Segmentfault 2020-11-02 14:32:34 秃头大哥

2020-10-30:给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相减的最大值,其中被减数的下标不小于减数的下标。即求出: maxValue = max{arr[j]-a...

2020-10-30:给定一个正数数组arr(即数组元素全是正数),找出该数组中,两个元素相减的最大值,其中被减数的下标不小于减数的下标。即求出: maxValue = max{arr[j]-arr[i] and j >= i}? 福哥答案2020-10-30: 1.双重遍历法。 2.一次遍历法。 golang代码如下: package main import "fmt" const INT_MAX = int(^uint(0) >> 1) func main() { s := []int{7,...阅读全文

简书 2020-10-30 21:32:38 福大大架构师每日一题

自定义 Kubernetes 调度器

感谢作者,原文链接:https://www.qikqiak.com/post/custom-kube-scheduler/kube-scheduler 是 kubernetes 的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。调度流程默认情况下,kube-sche...阅读全文

简书 2020-10-30 18:32:47 贺大伟

MIT6.824分布式系统课程 翻译&学习笔记(二)基础架构:RPC和线程【持续更新中】

说明本系列文章是对大名鼎鼎的 MIT6.824分布式系统课程 的翻译补充和学习总结,算是自己一边学习一边记录了。如有疏漏错误,还请指正:)持续更新ing。。。翻译&补充内容Go中的线程和RPC,看一下实验为什么选择Go?对线程良好的支持方便的RPC类型安全垃圾回收(没有内存释放后再被使用的问题)线程+垃圾回收非常棒相对简单在教程学习后,请阅读 effective go线程很有用的构造工具,但是有时候会很棘手在Go里叫做“goroutine”;其他地方叫做线程线程 = “执行线程”线程允许一个程序...阅读全文

Segmentfault 2020-11-02 14:32:33 raesnow

​教你导入golang.org的包

导入golang.org的包golang是google开源的编程语言,用久了就会对这个事实有深刻的体会比如说,go get一些包的时候,失败liao。 怎么解决国内golang.org下的包无法下载到本地GOPATH的问题呢?例子: github.com/colinmarc/hdfs 这个包用到了golang.org/x/crypto的部分功能原因:golang.org解析出来是google的ip,“理所应当”被拒绝访问办法,找到github的镜像包: 步骤:git clone [镜像地址].然...阅读全文

简书 2020-10-30 17:32:50 也许会了

2021年Linux服务器开发的知识技术合集(基础入门到高级进阶)

前言本文介绍下Linux从入门到高级进阶的学习路线。整个路线体系专注于服务器后台开发,知识点包括C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等等(技术点目尾都提供免费视频,qun832218493取资料)资源列表:1:linux零基础入门2:linux服务器开发3:架构师开发4:linux内核5:webrtc入门到精通6:音视频FFmpeg7:神器Git入...阅读全文

Go语言中文网 2020-10-30 16:53:16 zlh0921

Golang cache2go

一、简介 二、带着问题 三、源码 3.1 代码结构 3.2 核心代码 源码学习 https://github.com/muesli/cache2go 一、简介 cache2go是一个简单的缓存库,大概500行代码。 支持并发安全 支持过期清除 支持访问计数 配置回调函数 二、带着问题 并发的使用 过期清除如何实现的 回掉函数的配置 三、源码 3.1 代码结构 Cache.go 缓存库 CacheTable.go 缓存表 CacheItem.go 缓存项 3.2 核心代码 CacheItem ty...阅读全文

简书 2020-10-30 16:32:50 梦工厂

岛屿的周长 --leetcode刷题,golang实现

给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。 网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。 岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。 示例 : 输入: [[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]] 输...阅读全文

简书 2020-10-30 16:32:49 牙哥

Go编程语言基础知识简介

译者:AI研习社(Maker) 双语原文链接:https://www.yanxishe.com/TextTranslation/2943 Go编程语言基础知识简介 Go是一种开源编程语言,大约在11年前首次出现,与30岁的Python和35岁的C++相比,这门语言非常年轻。 Go是由谷歌的 Robert Griesemer, Rob Pike和 Ken Thompson设计的,目的是让开发人员更快、更容易地进行软件开发。 根据HackerEarth调查,Go是最受学生和专业开发人员欢迎的编程语言...阅读全文

简书 2020-10-30 16:32:49 AI研习社

error排查小技能

在日常的问题排查中经常因为找不到问题的所在方法,需要浪费大量的时间,当然链路追踪这个另说,记录一下我个人的问题排查方法,下面这个是正常的输出: ```go func main() { _, err := GetUrl("baidu.com") fmt.Println(err.Error()) } func GetUrl(url string) (string, error) { resp, err := http.Get(url) if err...阅读全文

Go语言中文网 2020-10-30 14:49:37 TonoT