solaris

Go 1.15 正式发布

…衆ロ難τιáo~ 提交于 2021-02-17 06:53:49
就在昨天,也就是2020年8月11日,go开发团队发布了go最新版本1.15。该版本在 1.14 的基础上继续改进工具链、运行时和库。也保留了GO1兼容性的承诺。这几乎保证所有的go程序都能像以前那样的正常编译与运行。并且在Go 1.15中对链接器也有重大改进,改进了对具有大量内核的小对象的分配,并弃用了 X.509 CommonName。GOPROXY 现在支持跳过返回错误的代理,并添加了新的嵌入式 tzdata 包。 编译器 包 unsafe 的安全规则允许在调用某些函数时将 unsafe.Pointer 转换为 uintptr 。以前,在某些情况下,编译器允许进行多次链接转换(例如 syscall.Syscall(…uintptr(uintptr(ptr)), …) )。现在,编译器只需要一次转换。使用多次转换的代码应进行更新以满足安全规则。与 Go 1.14 相比,Go 1.15 通过消除某些类型的 GC 元数据并更积极地消除了未使用的类型元数据,与 Go 1.14 相比将典型的二进制大小减少了大约5%。该工具链现在通过将函数与 32 字节边界对齐并填充跳转指令来缓解 GOARCH=amd64 上的 Intel CPU 勘误 SKX102 。尽管此填充增加了二进制大小,但这远远超出了上述二进制大小改进所弥补的范围。Go 1.15在编译器和汇编器中都添加了一个标志

solaris 修改sh 为 bash 及常见问题

社会主义新天地 提交于 2021-02-12 01:43:46
Linux的bash可以通过Tab键自动补全命令和文件名,而且可以通过上下键翻出输入的历史命令内容,很是方便。 但是Solaris默认使用的sh没有上述功能,造成使用的不便。 为了方便使用可以将Solaris的sh改为bash。 【方法如下】: 以root用户修改/etc/passwd文件, # vi /etc/passwd 将 root:x:0:0:Super-User:/:/ sbin/sh 改为 --> root:x:0:0:Super-User:/:/ bin/bash 即可。 测试登陆效果 su - root 可以看见提示符已经变为bash-3.00#了,修改成功。 bash-3.00# 这样,就可以实现用Tab键补全命令行的输入和上下箭头实现输入命令的历史回放,而sh却没有这样的功能。 但是,仅仅这一点修改,并不能实现命令行提示符中出现象Linux提示符中既有用户名,又有主机名和当前路径名。需要另外编辑文件。 即在$HOME下新建文件.profile,如果文件存在的话就在里面添加内容。由于是root用户,所以$HOME的路径为根目录/。在根目录下新建文件.profile,并在其中添加如下内容: vi /.profile PS1='[\u@\h:$PWD]#' export PS1 保存退出该文件,重新登录su - root,则命令行提示符为: [root@solaris

JNI/C socket connection error on Solaris 11

主宰稳场 提交于 2021-02-10 18:00:24
问题 Our application uses several socket connections (to localhost) implemented in c, with one connection using a jni/c socket connection. All of them call the same include to open the socket, and all are successful when we run the application on Solaris 10. Migrating to Solaris 11, we are finding that only the socket connections built in c are working, the one jni/c connection will not. I've added output to see what exactly is being sent to the connect call and it looks like the call is getting

pclose() prematurely returning in a multi-threaded environment (Solaris 11)

牧云@^-^@ 提交于 2021-01-28 04:39:45
问题 I'm trying to implement a tool that starts 2 ssh connections and executes a script that requires root permission. Here is a very simple implementation: void* SshConnection(void* args) { char buffer[5000]; FILE* popenReturn = NULL; //get the hostname to connect to const char* hostname = (const char*)args; snprintf(buffer, sizeof(buffer), "/usr/bin/gnome-terminal -x bash -c \"" "ssh -t user@%s " "-i /home/user/.ssh/key.key " "\\\"/home/user/DoRootThings.bash\\\" ",hostname); popenReturn = popen

pthread_cond_wait() and signal, the result depend on OS

二次信任 提交于 2021-01-27 18:02:49
问题 I am a beginner of multi-threaded programming, and now I know that when a signal was sent while waiting with pthead_cond_wait() , the result depends on the OS. Can somebody tell me how to know how the call was interrupted, and how to write portable code? #include <stdio.h> #include <signal.h> #include <pthread.h> void sigusr1_handler(int sig) { printf("signal called\n"); } int main() { int n; pthread_mutex_t mut; pthread_cond_t cond; struct timespec ts; signal(SIGUSR1, sigusr1_handler);

都为你整理好了,5种Java 随机方式对比!你都知道吗?

陌路散爱 提交于 2021-01-17 16:56:19
1. Math.random() 静态方法 产生的随机数是 0 - 1 之间的一个 double,即 0 <= random <= 1。 for (int i = 0; i < 10; i++) { System.out.println(Math.random()); } 结果: 0.3598613895606426 0.2666778145365811 0.25090731064243355 0.011064998061666276 0.600686228175639 0.9084006027629496 0.12700524654847833 0.6084605849069343 0.7290804782514261 0.9923831908303121 实现原理: When this method is first called, it creates a single new pseudorandom-number generator, exactly as if by the expression new java.util.Random() This new pseudorandom-number generator is used thereafter for all calls to this method and is used nowhere else.

MySQL8.0功能详解——资源组管理

徘徊边缘 提交于 2021-01-06 20:54:41
点击 蓝字 关注我们 MySQL8.0里包括一款功能——CPU资源分组管理。 它实现的目的是将CPU资源分组,并且赋予运行不同类型的查询。 通过它可以解决DBA的一些痛点,例如: 夜间进行的批处理、大型报表非常耗费资源,为了不影响其它查询的进行,不得不将其放在从服务器上运行。 使用资源组管理后,DBA可以将工作分配给限定的CPU核心或者是vCPU。 另外,DBA还可以将资源分配给不同的应用,例如分配8个核心给应用A,分配4个核心给应用B,使服务器的资源更加合理的使用。 简单说明一下它的使用过程, 首先, 需要 创建资源组, 为每个 资源组分配适当的 CPU核心数量或者是 vCPU 。 其次,将资源组分配给正在运行查询的线程ID。之后,各个查询就会按照不同的资源组限定的范围运行。 下面详细介绍一下相关的内容: 资源组: 资源组包括名称,类型,分配的CPU核心,以及优先顺序。创建资源组时,使用SQL执行CREATE RESOURCE GROUP,例句如图: 资源组的类型分为user和system,system的优先顺序要高于user,system的优先范围在-20到0之间,user的范围在0到19。创建之后,可以通过 SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS来查看资源组的信息。例如: 有没有发现什么问题

telnet和ssh

不想你离开。 提交于 2021-01-02 07:22:52
其实有两大协议可用于访问服务器: •Telnet •SSH 不妨逐个讨论这两大协议: Telnet 1. Telnet是电信(Telecommunications)和网络(Networks)的联合缩写,这是一种在UNIX平台上最为人所熟知的网络协议。 2. Telnet使用端口23,它是专门为局域网设计的。 3. Telnet不是一种安全通信协议,因为它并不使用任何安全机制,通过网络/互联网传输明文格式的数据,包括密码,所以谁都能嗅探数据包,获得这个重要信息。 4. Telnet中没有使用任何验证策略及数据加密方法,因而带来了巨大的安全威胁,这就是为什么telnet不再用于通过公共网络访问网络设备和服务器。 5. 在Linux系统上,telnet很容易使用yum来安装: [root@pbx2 ~]# yum install telnet telnet的最佳用途就是检查远程主机上任何特定服务的状态。比如说,如果我们想要检查在本地服务器上通过端口80运行的Apache Web服务的状态,可以这么做: [root@pbx2 ~]# telnet localhost 80 Trying ::1... telnet: connect to address ::1: Connection refused Trying 127.0.0.1... telnet: connect to

How to build C++ code using scons for solaris compatible OS using jenkins?

半腔热情 提交于 2020-12-15 05:51:49
问题 Here is my C++ code: #include<iostream> int main() { std::cout<<"Starting Program"<<std::endl; int a = 10; int b = 20; int c = a + b; std::cout<<"Sum of A and B is "<<c<<std::endl; std::cout<<"Ending Program"<<std::endl; return 0; } Here is my SConstruct script file: env = Environment(platform='sunos') env.Program('hello.C') Does above SConstruct file is correct to build hello.C for solaris ? Will this work. Any suggestions. 回答1: This is how I would do it: Setup a Solaris machine x86/SPARC

How to build C++ code using scons for solaris compatible OS using jenkins?

断了今生、忘了曾经 提交于 2020-12-15 05:49:06
问题 Here is my C++ code: #include<iostream> int main() { std::cout<<"Starting Program"<<std::endl; int a = 10; int b = 20; int c = a + b; std::cout<<"Sum of A and B is "<<c<<std::endl; std::cout<<"Ending Program"<<std::endl; return 0; } Here is my SConstruct script file: env = Environment(platform='sunos') env.Program('hello.C') Does above SConstruct file is correct to build hello.C for solaris ? Will this work. Any suggestions. 回答1: This is how I would do it: Setup a Solaris machine x86/SPARC