技术分享 -- 213




200x200


进程是一个程序的一次执行,而一个进程中至少要有一个线程线程的划分尺度要小于进程,使得多线程程序的并发性很高,所以线程也被称为“轻量级进程”每个进程可以不同的用户创建,具有不能共享的资源,进而构成竞争关

#技术帖    #操作系统    #os    #技术分享   
UNIX提供给应用程序员以100多个系统调用,用以在用户态下完成进程管理、文件管理等需要提升至内核态的操作,而windows下,应用程序员不能直接使用系统调用,而需要借用操作系统提供的数千个WIN32 API来完成,每个API函数可以调用一个或多个系统调用也可以不调用任何系统调用,仅仅在用户态下完成操作,不同版本的相同API所调用的系统调用以及其调用方式也可能不同windows的数千个win32 API有大量用于管理视窗、几何图形、文本、字型、进度条等的GUI的相关功能,而UNIX中,GUI并不是系统的组成部分,所以UNIX提供的系统调用仅仅负责最基本的操作基于win32 API的编程一般是事件驱动的,即在主程序中等待某件事件的发生,然后调用相关的处理方法处理该事件,包括键盘敲击、鼠标移动等,之后更新内部程序状态,而UNIX中每一个程序会包括做各种处理的代码以及从事完成特定服务的系统调用进程创建:UNIX中使用系统调用fork通过复制父进程地址空间开辟子进程,而在windows中,没有子进程的概念,windows中使用CreateProcess这个API来完成fork和execve的功能,创建新的进程,之后新的进程与创建者失去关系,平等的进行操作windows不支持编程实现文件的链接、文件系统的安装、安全属性或信号,当然,windows也同样有大量UN
#技术帖    #操作系统    #os    #unix   
今天写了一个程序:/* * file: main.cc * author: 龙泉居士 * date: 2012-10-05 10:15 */ #include <iostream> #include <sstream> #include <cstdarg> using namespace std; void error (const char * a ...) { char ch; va_list ap; va_start (ap, a); istringstream isstr(a); while (isstr.get(ch)) { if (ch == '%') { isstr.get(ch); switch (ch) { case 's': { char *p = va_arg(ap, char *); cerr << p; break;
#技术帖    #c语言    #技术分享    #va_arg   
执行 sudo vim /boot/grub/grub.cfg 打开 grub.cfg 文件 查找类似下面的配置信息:menuentry 'Ubuntu,Linux 2.6.32-22-generic-pae' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2 set root='(hd0,7)' search --no-floppy --fs-uuid --set 7dde7e5c-249c-4128-b148-8ebae100cc7a linux /boot/vmlinuz-2.6.32-22-generic-pae root=UUID=7dde7e5c-249c-4128-b148-8ebae100cc7a ro quiet splash initrd /boot/initrd.img-2.6.32-22-generic-pae}  进行两处修改:在 menuentry 中写入标识,括在括号中,至于标识是什么,完全随意,如“text mode”把 quiet splash 改成 quiet text&n
#技术帖    #ubuntu    #字符界面    #图形界面   
安装及配置1、安装在 ubuntu 中只需执行:sudo apt-get install git 即可安装 github 客户端2、配置执行下面的命令:git config --global user.name 'zeyu203' git config --global user.email 'zeyu203@qq.com' 设置用户名称及邮箱地址创建密钥进入 ~/.ssh 目录执行ssh-keygen -t rsa -C 'zeyu203@qq.com' 生成新的密钥,然后在 github 网站系统中点击右上角的 Account Settings --> SSH Public Keys --> add another public keys 添加本地生成的密钥即可执行ssh –T git@github.com 若出现欢迎信息,说明修改成功命令操作项目的添加 git status -- 查看当前项目下的所有文件状态 git add . -- 将目录下所有内容提交到git本地仓库 git commit -m 'message'
#技术帖    #github    #svn   
Mongo db 与mysql 语法比较传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。 Mongo db 与mysql 语法比较 MySQLMongoDB说明 mysqldmongod服务器守护进程 mysqlmongo客户端工具 mysqldumpmongodump逻辑备份工具 mysqlmongorestore逻辑恢复工具 db.repairDatabase()修复数据库 mysqldumpmongoexport数据导出工具 sourcemongoimport数据导入工具 grant * privileges on *.* to …Db.addUser() Db.auth()新建用户并权限 show databasesshow dbs显示库列表 Show tablesShow collections显示表列表 Show slave statusRs.status查询主从状态 Create table users(a int, b int)db.createCollection("
#技术帖    #mysql    #mongo    #sql   

200x200


[Pastel on Black] text(bold)=ffffff magenta(bold)=8080c0 text=ffffff white(bold)=ffffff green=00ff00

#技术帖    #linux    #unix    #配置文件   
〇、引言最近开始看《linux内核源码完全注释》,虽然之前无论是在《INTEL汇编语言程序设计》、《Orange'S》还是《现代操作系统》上对操作系统的内存管理都已经有过很多的接触,但是重新学习这些东西感觉还是有很多地方很不清晰,很多概念感觉理解起来很混乱,仔细研究了两天,基本上对整个过程和各种基本概念有了一个比较深刻和全面的认识,下面说说我的认识吧 一、分段机制由于分页机制是在分段机制的基础上完成的,所以我们首先介绍分段机制实地址模式中,我们使用段寄存器保存段地址,使用段内变址寄存器保存段偏移地址,这两个组合以后就可以得到物理内存上的物理地址了,但是由于在保护模式中,我们需要对内存加入保护机制,就必须更多的信息,仅仅通过两个寄存器就明显不够了,于是引入了分段机制,在寻址过程中保存更多的保护信息,但是基本的原理还是类似的 程序员熟悉和操作的依然是 32 位变址寄存器保存的逻辑地址,但是此时 16 位段寄存器保存的信息已经不仅仅是段基址了16 位段寄存器中的 0、1 位为 CPL 位,用来标识代码所在段的当前特权级,第2位为 TI 位,用来判断是 GDT(全局描述符表)还是 LDT(局部描述符表),剩下的高 13 位
#技术帖    #操作系统    #os    #现代操作系统   
由于使用 ssh 远程连接虚拟机的方式进行访问,所以虚拟机中 IP 的固定是必须的,否则在连接的某一时刻,会由于 IP 的突然改变而断开连接其实设置固定 IP 的方法也很简单 首先,在VMWare工具栏中打开:编辑--->虚拟机网络编辑器, 打开VMnet8的配置界面,查看子网 IP、子网掩码等信息,并在 NAT 设置中查看默认网关的信息,取消“使用本地DHCP服务来分配虚拟机IP地址”的选项然后进入虚拟机,在设置中设置成固定要分配的IP即可  
#技术帖    #linux    #网络    #network   
绪论不同版本、不同开发人员编写的代码常常需要进行合并,这个过程中文件的比较和同步工具就显得是必须的了,vimdiff 就是 vim 提供的一个较为强大的文件比较工具 打开 vimdiff可以通过下面的命令打开 vimdiff:vimdiff FILE_LEFT FILE_RIGHT 或vim -d FILE_LEFT FILE_RIGHT 也可以在打开一个文件后使用下面的命令打开::vertical diffsplit FILE_RIGHT  差异点间跳转可以使用快捷键在各个差异点之间快速移动。跳转到下一个差异点:]c 反向跳转是:[c  如果在命令前加上数字的话,可以跳过一个或数个差异点,从而实现跳的更远。比如如果在位于第一个差异点的行输入"2]c",将越过下一个差异点,跳转到第三个差异点。 文件合并文件比较的最终目的之一就是合并,以消除差异。如果希望把一个差异点中当前文件的内容复制到另一个文件里,可以使用命令dp (diff "put") 如果希望把另一个文件的内容复制到当前行中,可以使用命令do (diff "get",之所以不用dg,是因为dg已经被另一个命令
#技术帖    #linux    #unix    #vim   



京ICP备15018585号