我们以 GPG(加密工具)为例来说明两种安装方式的区别: 源码(Source code releases,名称中则会含有src等说明信息,tarball:source),先编译再安装 GPU 的源码地址:GnuPG - Download ./configure make make install 直接安装编译好的二进制包(GnuPG binary releases,名称中一般含有bin等说明信息,tarball:binary) # Debian / Ubuntu 环境 sudo apt-get…
  Linux共享库两种加载方式简述  动态库技术通常能减少程序的大小,节省空间,提高效率,具有很高的灵活性,对于升级软件版本也更加容易.与静态库不同,动态库里面的函数不是执行程序本身 的一部分,而是在程序执行时按需载入,其执行代码可以同时在多个程序中共享.由于在编译过程中无法知道动态库函数的地址,所以需要在运行期间查找,这对程 序的性能会有影响. 共享库 对于共享库来讲,它只包括2个段:只读的代码段 和可修改的数据段.堆和栈段,只有进程才有.如果你在共享库的函数里,分配了一块内存,这段内存将被…
读取xml文件转成List<T>对象的两种方法(附源码) 读取xml文件,是项目中经常要用到的,所以就总结一下,最近项目中用到的读取xml文件并且转成List<T>对象的方法,加上自己知道的另一种实现方法. 就以一个简单的xml做例子. xml格式如下: <?xml version="1.0"?> <products> <product name="West Side Story" price="9.9…
一.概念简述 在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用.静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新编译和下载内核,效率较低.若采用静态加载的驱动较多,会导致内核容量很大,浪费存储空间. 动态加载利用了Linux的module特性,可以在系统启动后用insmod命令添加模块(.ko),在不需要的时候用rmmod命令卸载模块,采用这种动态加载的方式便于驱动程序的调试,同时可以针对产品的功能需求,进行…
如何使用fdisk和parted分区工具来进行硬盘分区,下面我来说一下在Linux系统中这两种硬盘分区工具的使用方法:     ----------fdisk分区工具----------        在我的另一篇文章里已经说过了在Linux系统中硬盘分区的概念了(http://blog.chinaunix.net/u3/112561/showart_2230401.html),所以在这里我就不多说了,有不懂的可以看看那篇 一..下面来介绍fdisk分区工具的命令格式:     fdisk是传统…
一.应用程序和系统库从哪里来? 两种机制,源码安装和二进制安装. 二.源码安装 tarball 1.核心思想是:利用开源代码,自己编译生成应用程序或者库,要求系统上必须已安装TMG(tar, make, gcc). 2.tarball包的安装顺序是,先解压缩(tar).再配置(config).再编译(make).再安装(make install) tar -xvf xxx.tar.gz 到对应目录下 ./config xxxx 到对应目录下 make 到对应目录下 make install 3.…
背景介绍 随着固态存储技术 (SSD),SAS 技术的不断进步和普及,存储介质的种类更加多样,采用不同存储介质和接口的存储设备的性能出现了很大差异.SSD 相较于传统的机械硬盘,由于没有磁盘的机械转动,寻址速度大大提高,尤其在随机读写较多的应用环境下,性能会大大提升,但这些高性能存储设备的单位存储价格相对于传统的磁带和 SATA 硬盘也高出很多,如图 1 所示. 图 1 不同存储设备的性能价格对比 所以,如何高效平衡地利用这些存储设备,是所有存储厂商都在关注的问题.采用 Storage Tier…
与Asp.Net Mvc创建区域的时候会自动为你创建区域路由方式不同的是,Asp.Net Core下需要自己手动做一些配置,但更灵活了. 我们先创建一个区域,如下图 然后我们启动访问/Manage/Home/Index 发现是404没有找到该页面,因为我们还没有为其配置路由,下面使用两种配置区域路由的方式 1.通过配置MapRoute app.UseMvc(routes => { routes.MapRoute( name: "default", template: "…
尝试在linux上用gcc 而非封装完好的codeblocks,vs等ide 来编译c和cpp源程序 首先查看我的gcc版本,我的是VM centos 自带的,没有的话得自行安装,安装上gcc就可以在linux上编译c,cpp等源码了 然后新建一个文件夹cfile 来存放我进行试验的文件,在其中先用vim建一个c文件 try.c. 在用gcc编译写好的try.c文件,使其生成可执行的二进制目标文件try 其中提示有错误,python中打印用print 而C语言应该用printf才对,所以改正并且…
因为body和html,默认高度是auto 所以相对于他们作为父元素设置position:relative的top值需要加上body,html{height:100%;} <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> </head> <style type="text/css"> *{margin…