gnu

浅谈Linux与unix系统的来历

霸气de小男生 提交于 2020-02-24 16:56:32
在今天的UNIX是商业化的,UNIX系统大多是与硬件配套的,也就是说,大多数UNIX系统如AIX、HP-UX等是无法安装在 x86 服务器和个人计算机上的,UNIX系统是一个分时系统,而UNIX是至关重要的,在它最早被开发后的时间里,FreeBSD,Linux等操作系统都或多或少有来自UNIX 的启迪。UNIX 的出现最早是由大佬Ken Thompson在1970年用汇编语言来写出的,初代Unix公开后,引起学术界的广泛兴趣并对其源码索取,各大学和公司开始通过UNIX 源码对Unix进行了各种各样的改进和拓展,1973 年,KenThompson 和DennisRitchie 改掉UNIX 的汇编语言,自主编写语言,经过B语言到C语言,最终使用 C 语言编写内核的 UNIX 版本已相当稳定,且具有良好的可移植性,为 UNIX 的进一步推广和普及奠定了坚实的基础。 1978年伯克利大学推出改进和新功能而成的Unix,并命名为BSD,后来的FreeBSD就是在BSD、386BSD和4.4BSD一系列发展而来,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD 在 BSD 许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行。然而正是由于unix的不开源,才有了Richard Stallman发起GNU 计划,

What is the IAR equivalent of '__attribute__ ((weak, alias (#f))) '?

狂风中的少年 提交于 2020-02-23 07:38:05
问题 I was using LPC series (NXP) as control something. And now, we are switching over to another MCU (Spansion) and the compiler is from GNU to IAR. Some attribute doesn't the same between IAR and GNU, I would like to ask for help: In the past (GNU): #define ALIAS(f) __attribute__((weak, alias (#f))); #define CSV_IRQHandler(void) ALIAS(IntDefaultHandler) What is different if the compiler change to IAR? If I use the same syntax I get the error: Error[Pe130]: expected a "{" Any suggestion would be

C++ in VSCode

99封情书 提交于 2020-02-19 02:49:34
# C++ in VSCode ## Extensions - C/C++ - Microsoft - CMake - twxs - CMake Tools - Microsoft - Code Runner - Jun Han [_options_] ## macOS Requirement - Xcode - CMake `brew install cmake` ## CMake ### CMake Configure Press `Cmd+Shift+P`, input `CMake: Configure`. ### CMake Debug 1. Open `.vscode/settings.json`, append configure [_only for macOS_] ```json "cmake.debugConfig": { "miDebuggerPath": "${env:HOME}/.vscode/extensions/ms-vscode.cpptools-0.26.3/debugAdapters/lldb/bin/lldb-mi" } ``` 2. Set a breakpoint in main, then press `Cmd+Shift+P`, input `CMake: Debug`. ## std version ```sh # touch

php发送邮件失败

我只是一个虾纸丫 提交于 2020-02-18 04:53:26
Linux - SMP - x86_64 - GNU/Linux - 邮件 1.php.ini配置 sendmail_path = "/usr/sbin/sendmail -t -i" 2. /etc/postfix/main.cf 配置(如果不配的话,会访问外网的smtp代理,而线上服务器不允许访问外网) relayhost = proxy-in.baidu.com 来源: CSDN 作者: zxyBaby1027 链接: https://blog.csdn.net/qq_40012791/article/details/104362804

gcc中-pthread和-lpthread的区别

吃可爱长大的小学妹 提交于 2020-02-16 01:10:05
用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,以便使用thread-safe的库及头文件,一些老的书里说直接增加链接选项 -lpthread 就可以了,像这样: Shell代码 gcc -c x.c gcc x.o -ox -lpthread 而gcc手册里则指出应该在编译和链接时都增加 -pthread 选项,像这样: Shell代码 gcc -pthread -c x.c gcc x.o -ox -pthread 那么 -pthread 相比于 -lpthread 链接选项究竟多做了什么工作呢?我们可以在verbose模式下执行一下对应的gcc命令行看出来。下面是老式的直接加 -lpthread 链接选项的输出结果: Shell代码 $ gcc -v -c x.c ... /usr/lib/gcc/i486-linux-gnu/4.2.4/cc1 -quiet -v x.c -quiet -dumpbase x.c -mtune=generic -auxbase x -version -fstack-protector -fstack-protector -o /tmp/cch4ASTF.s ... as --traditional-format -V -Qy -o x.o /tmp/cch4ASTF.s ... $ gcc -v x.o -ox

Vi和Vim的区别和联系

痞子三分冷 提交于 2020-02-14 21:46:02
我们知道,Vi 编辑器是 Unix 系统最初的编辑器。它使用控制台图形模式来模拟文本编辑窗口,允许查看文件中的行、在文件中移动、插入、编辑和替换文本。 尽管 Vi 可能是世界上复杂的编辑器(讨厌它的人是这么认为的),但其拥有的大量特性使其成为 Unix 管理员多年来的支柱性工具。 在 GNU 项目中,程序员在将 Vi 编辑器移植到开源世界的同时,决定对其作一些改进。由于改进后的 Vi 不再是以前 Unix 中的那个原始的 Vi 编辑器了,开发人员也就将它重命名为“Vi improved”,也就是 Vim。 GNU 项目,英文全称为“GNU is Not Unix”,简单的说,就是一个开发类 Unix 操作系统的项目,GNU 操作系统是由 GNU 软件包及其第三方的免费软件包组成,所以其最大的特点就是免费。 因此可以这样说,Vim 是由 Vi 发展演变过程的文本编辑器,因其具有语法高亮显示、多视窗编辑、代码折叠、支持插件等功能,已成为众多 Linux 发行版本的标配,本教程强烈建议大家系统地学习 Vim。 有读者可能会问,Linux 系统中的文本编辑器有很多,例如 emacs、pico、nano、joe 等等,为什么一定要学 Vim 呢? 推荐使用 Vim 文本编辑器的原因有很多,比如说: 几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在; 在使用

linux cpu占有率居高不下 调试

独自空忆成欢 提交于 2020-02-14 00:24:02
今天调试程序,使用top命令后,发现程序的cpu占有率很高,一直在99,这很可怕,所以来调试。 使用top命令,得如下结果 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1997 root 20 0 358m 71m 3208 S 99.1 7.2 81:53.50 test 1 root 20 0 24332 2044 1176 S 0.0 0.2 0:01.36 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root 20 0 0 0 0 S 0.0 0.0 0:46.51 ksoftirqd/0 4 root 20 0 0 0 0 S 0.0 0.0 0:38.53 kworker/0:0 6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0 可知test的PID为1997 然后具体查看test里线程的cpu使用情况 使用 top -H -p 1997 命令 root@slk:~# top -H -p 1997 top - 17:19:47 up 15 days, 34 min, 4 users, load average: 1.02, 1.06, 1.06 Tasks: 8 total, 1 running, 7

软件抄袭与创新的思考

我们两清 提交于 2020-02-11 04:37:51
周末不想写太多的代码,一是由于手部神经性压迫导致疼痛(职业病啊),二是由于我认为有必要再扩大一下知识范围。 在找小说未果的情况下。先是买了本微创新,然后收获挺多的。又买了两本(基于亚马逊推荐。 。加上我的成功率,我想仅仅要找到一本就能够找到另外的三本): 《微创新:5种微小改变创造伟大产品》 《第三种创新:设计驱动式创新怎样缔造新的竞争法则》 《模仿的技术:企业怎样从”山寨”到创新》 看完了三本书,收获还是蛮大的。就想着写篇心得,兼作软文。 一个高速实现的想法 三周之前,我对策划了几天的基于HTML的PPT、博客、演示框架開始了编写之路。到了今天,已然有了243次提交,这意味着每天可能有12次左右的代码提交(ps:感谢党和组织,感谢长年不加班的公司让我有机会去写代码)。 假设你用过 impress.js 和 reveal.js 。那么我想你是知道网页版的Slider是长什么样的。 假设不知道的话,快来看看 EchoesWorks Demo 吧。 impress.js 有着酷炫的动画效果,可是不支持Markdown。 Reveal.js 支持Markdown,可是一点儿也不炫。 于是,在非常久曾经我有一个想法是,基于两者做一个这种框架,可是认为这样子显得没有创意。这也是为什么到了,如今EchoesWorks还没有华丽动画效果的原因之中的一个(ps

*** buffer overflow detected ***

心不动则不痛 提交于 2020-02-10 20:17:09
administrator@ubuntu:~/http_load$ ./http_load -p 1021 -s 10 url *** buffer overflow detected ***: ./http_load terminated ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(__fortify_fail+0x5c)[0x7f8b1248c08c] /lib/x86_64-linux-gnu/libc.so.6(+0x111020)[0x7f8b1248b020] /lib/x86_64-linux-gnu/libc.so.6(+0x111fd7)[0x7f8b1248bfd7] ./http_load[0x403990] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f8b1239bde5] ./http_load[0x401069] ======= Memory map: ======== 00400000-00406000 r-xp 00000000 07:00 949212 /home/administrator/http_load/http_load 00605000-00606000 r--p 00005000

GNU Radio: 射频子板

痞子三分冷 提交于 2020-02-10 05:23:59
本文简要介绍 USRP 配套的子板参数信息。 射频子板WBX-40 性能特点 频率覆盖:50 MHz – 2.2GHz 最大信号处理带宽:40MHz 行为描述   WBX-40提供高宽带收发器,可提供高达100mw的功率输出,噪声系数为5 dB。本地振荡器的接收和传输链独立运作,可以为MIMO实现同步。WBX提供40MHz的带宽能力。对于那些要访问频率段在50MHz-2200 MHz范围内的应用 ,是理想的SDR设备,。应用领域包WiFi,WiMAX,S波段收发器和2.4 GHz ISM频段收发器。应用领域包括陆地移动通信,海上和航空波段收音机;手机基站,PC机和GSM多波段收音机;相干多基地雷达;无线传感器网络;广播电视;公共安全管理等。适合应用在USRP N200, USRP N210, USRP X310,USRP X300. 兼容产品   X310, X300; USRP N210, USRP N200; USRP E110, USRP E100; USRP 1 射频子板WBX-120 性能特点 频率覆盖:50 MHz – 2.2GHz 最大信号处理带宽:120MHz 行为描述   WBX-120包含一个全双工宽带收发器,覆盖的频带从50 MHz到2.2 GHz,最高支持120 MHz的瞬时带宽。WBX-120可以服务于各种应用领域,包括公共安全,通讯,业余无线电,和ISM