发表了博客
2010/06/04 10:35

Go和plan 9 C联合编程

上一篇说了下golang 语言怎么结合plan 9 assembler编写程序。 这次来开下go是怎么使用plan 9 c语言来开发一些库的,这里只是简单的使用一个简单例子进行演示。 还是看下源代码吧 C代码 #include "runtime.h" void ·Add(int32 a,int32 b,int32 r) ; first.h 声明first.Add方法,同时引入runtime包的runtime.h头文件。 C代码 #include "first.h" //first.c void ·Add(int32 a,int32 b,int32 r) { r = a + b; USED(&r); } first...

0
2
发表了博客
2019/09/26 09:55

[golang]golang 汇编

https://lrita.github.io/2017/12/12/golang-asm/#why 在某些场景下,我们需要进行一些特殊优化,因此我们可能需要用到golang汇编,golang汇编源于plan9,此方面的 介绍很多,就不进行展开了。我们WHY和HOW开始讲起。 golang汇编相关的内容还是很少的,而且多数都语焉不详,而且缺乏细节。对于之前没有汇编经验的人来说,是很难 理解的。而且很多资料都过时了,包括官方文档的一些细节也未及时更新。因此需要掌握该知识的人需要...

0
0
2018/05/17 12:00

ARM 64平台之上的Go工具链实现剖析

作者简介 肖 玮 2016年至今一直在 arm 开源软件部门担任主任工程师,领导 Golang 针对 arm64 架构的功能实现(enabling)和性能优化工作,同时也是 Golang 汇编器(asm)和编译器(compile)针对 arm64 架构改进的主要贡献者之一。在加入 arm 之前一直供职于 Intel 开发者工具事业部,长期从事针对 X86 架构的动态二进制翻译器(DBT)和编译器产品等相关工作。 目 录 1.Toolchain 2.Compile 3.Asm 4.Link 5.Others 讲到 Arm 大家...

0
0
发表了博客
2018/05/17 10:02

Golang文件名命名规则

在golang源代码中,经常看到各种文件名,比如: bolt_windows.go。 下面对文件名命令规则的说明: 1、平台区分 文件名_平台。 例: file_windows.go, file_unix.go 可选为:windows, unix, posix, plan9, darwin, bsd, linux, freebsd, nacl, netbsd, openbsd, solaris, dragonfly, bsd, notbsd, android,stubs 2、测试单元 文件名_test.go或者 文件名_平台_test.go。 例: path_test.go, path_windows_test.go 3、版本区分(...

0
0
发表了博客
2015/10/26 11:39

Golang汇编命令解读

我们可以很容易将一个golang程序转变成汇编语言。 比如我写了一个main.go: package main func g(p int) int { return p+1; } func main() { c := g(4) + 1 _ = c } 使用命令: GOOS=linux GOARCH=386 go tool compile -S main.go >> main.S 我们就获取了main.S是main.go的汇编版本。 "".g t=1 size=16 value=0 args=0x10 locals=0x0 0x0000 00000 (main.go:4) TEXT "".g(SB), $0-16 0x0000...

0
1
发表了博客
2020/10/09 14:11

Golang,一门独立门户却又好好专注于解决过程式和纯粹app的语言

本文关键字:真正的APP语言。GO正确的设计。GO真正的分布式语言 以前,我总谈到编程是从xaas开始,到langsys到 domainstack到app的四栈叠加过程,语言因为平台也有本质上的二种:toolchain式和app式,历史上,人们总是企图从toolchain式语言上封装一次,在这上面发展app语言,这使得任何一种app都有了平台相关性,这种相关性或是CPU架构,OS的,或是toolchain libc。所以才会有那些移殖性的讨论和软件虚拟机语言(它们将平台重新...

0
0
发表了博客
2018/07/25 14:26

Golang build命令解析

  go build,是我们非常常用的命令,它可以启动编译,把我们的包和相关的依赖编译成一个可执行的文件。 usage: go build [-o output] [-i] [build flags] [packages]   go build的使用比较简洁,所有的参数都可以忽略,直到只有go build,这个时候意味着使用当前目录进行编译,下面的几条命令是等价的: go build go build . go build hello.go   以上这三种写法,都是使用当前目录编译的意思。因为我们忽略了packa...

0
0
2020/11/18 16:14

你真的懂 Go Reslice 吗

package main func a() []int { a1 := []int{3} a2 := a1[1:] return a2 } func main() { a() } 看到这个题, 你的第一反应是啥? (A) 编译失败 (B) panic: runtime error: index out of range [1] with length 1 (C) [] (D) 其他 第一感觉: 肯定能编译过, 但是运行时一定会 panic 的. 但事与愿违竟然能够正常运行, 结果是:[] 疑问 a1 := []int{3} a2 := a1[1:] fmt.Println("a[1:]", a2) a1 和 a2 共享同样的底层...

0
0
发表了博客
2018/06/16 23:23

Goland的使用

一、安装Goland 一、Goland简介   Goland是由JetBrains公司旨在为go开发者提供的一个符合人体工程学的新的商业IDE。这个IDE整合了IntelliJ平台的有关go语言的编码辅助功能和工具集成特点 二、下载相应的安装包   1、官网下载地址 https://www.jetbrains.com/go/ 三、在Windows上安装Goland   1、自定义安装路径      2、勾选需要的选项      3、自定义Goland语言的工作目录      4、等待安装完毕后,运行Gol...

0
0
发表于开发技能专区
2020/10/23 10:19

你真的懂 golang reslice 吗

package main func a() []int {  a1 := []int{3}  a2 := a1[1:]  return a2 } func main() {  a() } 看到这个题, 你的第一反应是啥? (A) 编译失败 (B) panic: runtime error: index out of range [1] with length 1 (C) [] (D) 其他 第一感觉: 肯定能编译过, 但是运行时一定会panic的. 但事与愿违竟然能够正常运行, 结果是:[] 疑问 a1 := []int{3} a2 := a1[1:] fmt.Println("a[1:]", a2) a...

0
0
发表了博客
2020/06/29 16:37

msf stagers开发不完全指北(二)

采用 Golang 开发stagers 上一篇文章 msf stagers开发不完全指北(一)中我们谈到如何采用 c 进行 msf 的 stagers 开发,这篇文章我们探讨一下如何使用 Golang 实现同样的功能 思路梳理 在 Golang 中一点比较重要的是,我们如何能够获取到 socket 的文件描述符,除此之外,我们还是同样的步骤 向 msf 监听地址发起 tcp 请求 获取 stages 将 socket fd 放入寄存器 edi 从起始地址开始执行 stages 编译环境 OS: Windows 10 Golang:...

0
0
发表了博客
2012/07/16 14:17

心目中的编程高手zz, 有点academic风格的说^_^

MIT BBS 上说微软电话面试的一道题就是“Who do you think is the best coder,and why? ”。我觉得挺有意思的,也来凑个热闹。排名不分先后。 Bill Joy, 前任Sun 的首席科学家,当年在Berkeley 时主持开发了最早版本的BSD 。他还是vi 和csh 的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD 的前身。当然是传说了,但足见他的功力...

0
0
发表了博客
2018/03/11 09:09

心目中的编程高手,经典计算机书籍作者介绍(部分,以后不定期更新)!

转载 from 负暄琐话 MIT BBS上说微软电话面试的一道题就是“Who do you think is the best coder, and why?”。我觉得挺有意思的,也来凑个热闹。排名不分先后。 Bill Joy, 前任Sun的首席科学家,当年在Berkeley时主持开发了最早版本的BSD。他还是vi和csh的作者。当然,Csh Programming Considered Harmful 是另一个话题乐。据说他想看看自己能不能写个操作系统,就在三天里写了个自己的Unix, 也就是BSD的前身。当然是传说了, ...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页