分类 Linux articles

archlinux-支持iphone插线3G

本文出自svtter.github.io 度娘永远都不会告诉你真正的答案是什么。 因为没有了CMCC-EDU,用上了坑爹联通,所以现在习惯于手机USB上网了。。(博主套餐流量看个技术是可以的。。) 然后问题就来了。。CentOS7上可以安稳的使用3G但是arch似乎不支持,百度了好久也没有找到。 后来bing 了一下iphone arch linux神奇的wiki就出来了,随后就申请了个帐号,准备在学习Linux的过程中学习英语。给wiki 做点翻译还是可以的吧= =。 方法很简单, 因为我用的是NetworkManager, 所以最简单而行之有效的方法是: 重启机器或者NetworkManager搞定。 虽然无关技术以及学术痛痒,但是总感觉在Linux普及上尽了一份力= =……

Continue reading

archlinux-安装笔记

本文出自<svtter.github.io> 花了一些时间安装arch,记录一下注意事项。 多重引导 安装多重引导支持 pacman -S os-prober 更新grub grub-mkconfig -o /boot/grub/grub.cfg 写入mbr grub-install --target=i386-pc --recheck /dev/sda 图形化的网络服务 systemctl enable NetWorkManager.service wifi配置 如果你想使用wifi(在图形界面下),首先你要停止dhcp服务systemctl stop dhcpcd.service 开机停止运行systemctl disable dhcpcd.service 我们之所以这样,是为了保证我们的NetWorkManager正常服务。 session控制器 我选择的是gdm,原因是slim我不太会配置。 pacman -S gdm 另外patheon在我书写这篇blog的时候,还是存在不少bug.官方的wiki在这个时候也不是很好用了。期待patheon! 添加了官方给的patheon库,会出现一个gnome-lib的冲突 输入法的注意事项 使用fcitx需要注意.xprofile的配置问题。 其他的安装情况可以看看官方的wiki sudoer的配置 使用pacman安装sudoer pacman -S sudo 编辑/etc/sudoers,取消wheel用户组的注释. vim配置 在gvim中,直接使用synatic on而不用判断,否则会造成代码高亮失效。 locate配置 安装以后发现locate命令无法使用,安装pacman -S mlocate 另外, mark一个项目:gitbook, 很好很强大 应该涵盖了所有的我安装时候遇到的问题,如果还有什么问题,我再后续添加。……

Continue reading

Linux-进程间的通信

本文出自<svtter.github.io> 实验内容 消息的创建,发送,和接收。 <任务> 使用系统调用 msgget( ), megsnd( ), msgrev( )及 msgctl()编制一长度为 1K 的消息发送和接收的程序 。 程序设计 为了便于操作和观察结, 用一个程序为引子 , 先后fork( )两个子进程 , SERVER 和 CLIENT,进行通信。 SERVER 端建立一个 Key 为 75 的消息队列,等待其他进程发来的消息。当遇到类型为 1 的消息, 则作为结束信号,取消该队列,并退出 SERVER 。SERVER 每接收到一个消息后显示一句 “(server)received”。 CLIENT 端使用 Key 为 75 的消息队列,先后发送类型从 10 到 1 的消息,然后退出。最后的一个 消息,既是 SERVER 端需要的结束信号。CLIENT 每发送一条消息后显示一句“(client)sent”。 父进程在 SERVER 和 CLIENT 均退出后结束。 使用的函数 并非每次创建消息队列都会成功,所以重新添加-1情况的判断。 可以使用ipcs -q命令查看 源代码 运行结果 ……

Continue reading

Linux-同步互斥

本文出自<svtter.github.io> 使用pthread实现经典问题:生产者消费者 关于semaphore的相关信息就不再贴出来了。 编译的时候记得-pthread选项。 运行结果 操作系统经典问题:哲学家就餐问题 mutex是c++11的新功能。记得添加C++11支持。(在运行结果中包含编译选项。) 运行结果 操作系统经典问题:读者写者问题 读者优先 使用了c++11的新特性thread 运行结果 由于可以同时阅读,所以读者reading输出可能出现少许问题。 写者优先 使rsem中只有一个读者在等待,保证了如果有写者,写者优先写 运行结果 基本上结果就是写者写完,才会有读者阅读 ……

Continue reading

Linux-管道

本文出自<svtter.github.io> 头文件: #include<unistd.h> 使用方法: int pipe(int chan[2]); 说明: pipe会建立管道,并将文件描述词通过chan返回。一般chan[0]为管道的读取端,chan[1]是写入端。 返回值: 成功返回0,失败返回-1,错误信息保存在errno中 错误信息: EMFILE 进程已用完文件描述词最大量。 ENFILE 系统已无文件描述词可用。 EFAULT 参数filedes数组地址不合法 运行结果: ……

Continue reading

Linux系统函数简介

本文出自<svtter.github.io> 系统调用函数说明、参数值及定义 本文摘自老师的资料= = 使用这些函数的时候记得将头文件unistd.h包含到程序中 1、fork() 创建一个新进程 int fork() 其中返回int取值意义如下: 0:创建子进程,从子进程返回的id值大于0:从父进程返回的子进程id值 -1:创建失败 2、lockf(files,function,size): 用作锁定文件的某些段或者整个文件,本函数适用的头文件为: #include<unistd.h> 参数定义: int lockf(files,function,size) int files,function; long size; 其中:files是文件描述符:function是锁定和解锁;1表示锁定,0表示解锁。size是锁定和解锁的字节数,若用0,表示从文件的当前位置到文件尾。 3、msgget(key,flag): 获得一个消息的描述符,该描述符指定一个消息队列以便用于其他系统调用。 该函数使用偷文件如下: #include<sy/types.h> #include<sy/ipc.h> #include<sy/msg.h> 参数定义 int msgget(key,flag) key_tkey; int flag; 语法格式:msgqid=msgget(key,flag) 其中:msgid是该系统调用返回的描述符,失败则返回-1;flag 本身由操作允许权和控制命令值相或得到。 如: IP_CREAT|0400 是否该队列应被创建; IP_EXCL |0400 是否该队列的创建应是互斥的;等。 msgsnd(id,msgp,size,flag): 发送一消息。 该函数是用头文件如下: #include<sy/types.h> #include<sy/ipc.h> #include<sy/msg.h> 参数定义 int msgnd(id,msgp,size,flag) int id,size,flag; struct msgbuf * msgp; 其中:id是返回消息队列的描述符;msgp是指向用户存储区的一个构造体指针,size指示由msgp 指向的数据结构中字符数组的长度;即消息的长度。这个数组的最大值由MSG-MAX系统可调用参数来确 定。flag规定当核心用尽内部缓冲空间时应执行的动作;若在标志flag中末设置IPC_NOWAIT位,则当 41该消息队列中字节数超过一最大值时,或系统范围的消息数超过某一最大值时,调用msgsnd进程睡眠。 若是设置IPC_NOWAIT,则在此情况下,msgsnd立即返回。 msgrcv(id,msgp,size,type,flag): 接受一消息。 该函数调用使用头文件如下: #include<sy/types.h> #include<sy/ipc.h> #include<sy/msg.h>……

Continue reading

解决无法在CentOS下的gvim中使用ibus输入中文

问题 之前在gvim中一直无法使用中文,格外痛苦,后来使用了vim-ibus插件之后,可以在vim中使用中文了,但是依然不能在gvim中使用,一直以为是两个软件冲突的 问题,现在终于解决了。 gvim version: vim-X11 ibus version: 1.6 解决方案 问题出在:使用的vim插件中有插件与ibus冲突,但是奈何找不到X11的log(应该可以找到,找到再说。。) 排查方式比较简单,使用:PluginInstall,:PluginClean即可(考虑到我使用vundle管理插件) 去除相应的插件即可(比如现在冲突的是auto-pairs)。如果不想去除冲突插件,可以考虑使用vim-ibus,这个在shell下是可以使得很多冲突减少的。 可能auto-pairs在不久的将来就会修复这个bug,请在具体环境下排查 ……

Continue reading

Linux-进程管理

本文出自<svtter.github.io> 进程的创建 用于进程的创建。fork()的作用是,从当前位置创建一个子进程,并执行。fork的返回值为子进程的pid 运行结果 进程的控制 在这段代码中使用了lockf, 和wait函数。作用是什么呢? lockf顾名思义是锁定file. lockf(1, 1, 0)锁定资源,lockf(1, 0, 0)释放资源。 wait作用为等待子进程的返回信息。wait中的signal用于接受进程的返回信号,即exit(0)中的0 运行结果 ……

Continue reading

Linux -基础学习笔记-2

Linux用户和用户组

  • 简单解释:
文件权限 连接数 文件所有者 文件所属用户组 文件大小 文件最后被修改的时间 文件名
-rw-r–r– 1 root root 42304 Sep 4 18:26 install.log
……

Continue reading

Latest articles

Categories

Tags

Meta