zoukankan      html  css  js  c++  java
  • 常见问题集锦

    Linux进程间通信(IPC,Inter-Process Communication)方式
    管道   管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
    命名管道 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
    信号量 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
    信号 信号是Unix、类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种异步的通知机制,用来提醒进程一个事件已经发生。当一个信号发送给一个进程,操作系统中断了进程正常的控制流程,此时,任何非原子操作都将被中断。
    消息队列 消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。和信号相比,消息队列能够传递更多的信息。与管道相比,消息队列提供了有格式的数据,这可以减少开发人员的工作量。消息队列仍然有大小限制。
    套接字 套解口也是一种进程间通信机制,与其他通信机制不同的是它可用于不同及其间的进程通信。
    共享内存 共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。
    远程进程调用

    linux文件系统为索引式文件系统(indexed allocation),磁柱是分割槽的最小单位,第一个扇区里面有MBR(446Bytes)及磁盘分割表(64Bytes)。 在Linux下的 ext2 文件系统建立一个目彔时, ext2 会分配一个 inode 和至少一块 block 给该目彔。其中,inode 记彔该目彔的相关权限不属性,并可记彔分配到的那块 block 号码; 而 block 则是记彔在这个目彔下的文件名不和该文件名占用的 inode 号码数据。

    nginx默认的欢迎页面 /usr/share/nginx/www/index.html,修改www路径sudo vi /etc/nginx/sites-available/default
    增加location ~ http://stackoverflow.com/questions/15852884/nginx-connect-failed-error sudo vim /etc/nginx/sites-available/default

    光标移动:
    w光标以单词向前移动, nw向前移动n个单词,落在单词第一个字母上
    b光标以单词向后移动, nb向后移动n个单词,落在单词第一个字母上
    e光标以单词向前移动, ne向前移动n个单词,落在单词最后一个字母上
    ge光标以单词向后移动, nge向后移动n个单词,落在单词最后一个字母上
    单词:全字母或全中文(每个标点符号都是分隔符,标点符号的组合也是分隔符)

    安装squid3
    http://forum.ubuntu.org.cn/viewtopic.php?t=107488
    http://raysmond.com/?q=zh-hans/article/79
    http://forum.ubuntu.org.cn/viewtopic.php?t=107488

    /etc/vim/vimrc中设置对系统所有用户有效,~/.vimrc对当前用户有效,~/.vimrc文件中的配置会覆盖/etc/vimrc中的配置。http://blog.carlcarl.tw/584/vim-neocomplcache-sudo-vim
    vim打开一个文件时,其会产生一个filename.swap文件,用于保存数据,当文件非正常关闭时,可用此文件来恢复,当正常关闭时,此文件会被删除,非正常关闭时,不会被删除,所以提示存在.swap文件,此时你可以恢复文件:vim -r filename.c 恢复以后把.swap文件删掉,在打开时就不会用提示良,注意.swap文件是个隐藏文件。可用:la查看。以.开头的是隐藏文件。

    .* 是一个字符循环0次或者很多次,多一个?在后面,意思是懒惰循环。
    eg.对于字符串aaaaaaa, a*一下子很勤劳的把整个字符串都匹配完了,结果是aaaaaaa。a*? 很懒,发现匹配字符串中一个a后,就完成了匹配,就不用再继续尝试下去了,因此就第一次只匹配a,然后进行第二轮匹配了,还是只匹配一个a就结束。

    EditPlus文件默认ANSI编码,xshell会话窗口编码默认不是UTF-8,所以EditPlus里的文件先修改编码为UTF-8,后通过xshell的sftp功能传送至服务器/var/www目录,本地默认目录为xshell.exe所在目录。

    JRE就是java runtime environment。也就是java程序运行环境,它提供java程序运行所需的一些函数和资源。
    JDK是java development kit的简称,主要是开发java程序的时候要用到。JDK是整个java的核心,它不但包括了java标准类库及java API,还包括了开发java程序所需的编辑、编译器等。
    JRE顾名思义是JAVA程序要运行所需要的环境,所谓跨平台就是要各种平台都有一个中间代理,那就是JRE。JDK中包括了JRE,但是对于不需要开发只是运行的用户是可以只单独安装JRE的,所以sun提供了JRE下载。Ubuntu 配置JDK环境 http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html

    bash启动配置文件 《鸟哥的Linux私房菜》p388

    PCI 机箱 硬件  http://zh.wikipedia.org/wiki/%E7%94%B5%E8%84%91%E7%A1%AC%E4%BB%B6

    X86结构是小端模式,http://zh.wikipedia.org/wiki/%E5%AD%97%E8%8A%82%E5%BA%8F

    编码方案:

    用于简体中文的GB2312和用于繁体中文的big5。

    GB2312(1980年)一共收录了7445个字符,包括6763个汉字和682个其它符号。汉字区的内码范围高字节从B0-F7,低字节从A1-FE,占用的码位是72*94=6768。其中有5个空位是D7FA-D7FE。GB2312支持的汉字太少。

    1995年的汉字扩展规范GBK1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。

    从ASCII、GB2312到GBK,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK都属于双字节字符集 (DBCS)。

    2000年的GB18030是取代GBK1.0的正式国家标准。该标准收录了27484个汉字,同时还收录了藏文、蒙文、维吾尔文等主要的少数民族文字。从汉字字汇上说,GB18030在GB13000.1的20902个汉字的基础上增加了CJK扩展A的6582个汉字(Unicode码0x3400-0x4db5),一共收录了27484个汉字。CJK就是中日韩的意思。Unicode为了节省码位,将中日韩三国语言中的文字统一编码。GB13000.1就是ISO/IEC 10646-1的中文版,相当于Unicode 1.1。

    GB18030的编码采用单字节、双字节和4字节方案。其中单字节、双字节和GBK是完全兼容的。4字节编码的码位就是收录了CJK扩展A的6582个汉字。例如:UCS的0x3400在GB18030中的编码应该是8139EF30,UCS的0x3401在GB18030中的编码应该是8139EF31。

    Unicode也是一种字符编码方法,不过它是由国际组织设计,可以容纳全世界所有语言文字的编码方案。Unicode的学名是"UniversalMultiple-Octet Coded Character Set",简称为UCS。UCS可以看作是"Unicode CharacterSet"的缩写。Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容)

    UCS只是规定如何编码,并没有规定如何传输、保存这个编码。例如“汉”字的UCS编码是6C49,我可以用4个ascii数字来传输、保存这个编码;也可以用utf-8编码:3个连续的字节E6 B189来表示它。关键在于通信双方都要认可。UTF-8、UTF-7、UTF-16都是被广泛接受的方案。UTF-8的一个特别的好处是它与ISO-8859-1完全兼容。UTF是“UCS Transformation Format”的缩写。

    UTF-8就是以8位为单元对UCS进行编码。从UCS-2到UTF-8的编码方式如下:

    UCS-2编码(16进制) UTF-8 字节流(二进制) 
    0000 - 007F 0xxxxxxx 
    0080 - 07FF 110xxxxx 10xxxxxx 
    0800 - FFFF 1110xxxx 10xxxxxx 10xxxxxx 
    例如“汉”字的Unicode编码是6C49。6C49在0800-FFFF之间,所以肯定要用3字节模板了:1110xxxx 10xxxxxx10xxxxxx。将6C49写成二进制是:0110 110001 001001, 用这个比特流依次代替模板中的x,得到:1110011010110001 10001001,即E6 B1 89。

  • 相关阅读:
    人工大脑项目 —— Nengo
    四种聚类方法之比较
    对淘宝一些规则的一些研究分享
    【转】千万不要在夏季开发苹果应用,否则后果很严重
    Windows2003上使用IIS7 Express使用FastCgi运行php
    傅立叶变换最直白最容易理解最直接最真实最有深度的解释
    音视频技术应用(18) 控制播放进度——av_seek_frame()
    MySQL 中如何定位 DDL 被阻塞的问题
    windows 编译版本异常处理
    R语言的前世今生
  • 原文地址:https://www.cnblogs.com/francfu/p/3451601.html
Copyright © 2011-2022 走看看