随笔分类 -  Linux

unix环境高级编程-进程环境
摘要:main函数:int main(int argc, char *argv[]);当内核执行一个c程序时(使用一个exec函数),在调用main前先调用一个特殊的启动例程,可执行文件按将此例程作为程序的开始地址-这是由连接编辑器设置的,而连接编辑器由c编译器调用,启动例... 阅读全文

posted @ 2016-07-28 19:48 sichenzhao 阅读(157) 评论(0) 推荐(0)

Unix环境高级编程-系统数据文件和信息
摘要:unix口令文件/etc/passwd 包含了下表所示的字段:系统定义了两个获取口令文件项的函数,在给出用户登录名或数值用户ID后,这两个函数能够查看相关项。struct passwd *getpwuid(uid_t uid);struct passwd *getpw... 阅读全文

posted @ 2016-07-27 22:47 sichenzhao 阅读(172) 评论(0) 推荐(0)

unix环境高级编程-标准IO
摘要:标准IO库:不仅在unix上,在很多操作系统上都实现了标准的IO库,它处理了很多细节,例如缓冲区分配,优化长度执行IO等。流和FILE对象:对于标准的IO库,它们的操作是围绕流(stream)进行的。当用标准IO库打开或创建一个文件时,已经使一个流和一个文件相关联,标... 阅读全文

posted @ 2016-07-26 21:52 sichenzhao 阅读(138) 评论(0) 推荐(0)

unix环境高级编程-文件和目录(1)
摘要:stat、fstat和lstat函数:一旦给出pathname,stat函数返回与此函数命令文件有关的信息结构。第二个参数buf是指针,指向一个我们必须提供的结构体。该结构体的基本结构是:文件类型:1 普通文件(regular file):最常见的文件类型2 目录文件... 阅读全文

posted @ 2016-07-26 20:11 sichenzhao 阅读(179) 评论(0) 推荐(0)

unix环境高级编程-文件IO
摘要:文件IO:大多数文件IO只需要用到5个函数:open,read,write,lseek和close这里描述的函数经常被称为不带缓冲的IO(unbuffered IO),不带缓冲的意思是每个read和write都调用内核中的一个系统调用,这些不带缓冲的IO函数不是ISO... 阅读全文

posted @ 2016-07-26 11:10 sichenzhao 阅读(154) 评论(0) 推荐(0)

unix高级环境编程-读书笔记(1)
摘要:在研读了鸟哥的linux私房菜之后,对linux有了大致的概念,下面就开始研读linux学习中被称为圣经的:《Advanced Programming in unix environment》,也就是众所周知的unix环境高级编程。unix体系结构:操作系统实际上是一... 阅读全文

posted @ 2016-07-25 16:46 sichenzhao 阅读(150) 评论(0) 推荐(0)

在ubuntu下安装新的内核
摘要:首先去内核的官网下载官方内核,比如:https://www.kernel.org/pub/linux/kernel/v2.6/。下载压缩文件,*.tar.bz2。解压到/usr/src目录下# tar -Jxvf linux-2.6.30.3.tar.bz2 -C... 阅读全文

posted @ 2016-07-23 16:32 sichenzhao 阅读(424) 评论(0) 推荐(0)

linux内核
摘要:内核kernel是操作系统的最底层,也就是和硬件打交道的关键,因为它包含了驱动主机各项硬件的检测程序和驱动模块。内核通常被放置在/boot/vmlinuz中,但是一台主机而已拥有多个内核文件。内核模块(kernel module)如果电脑的硬件更新了,而内核比较旧,肯... 阅读全文

posted @ 2016-07-23 15:46 sichenzhao 阅读(126) 评论(0) 推荐(0)

linux数据备份
摘要:个人数据,在一般的计算机中,可以利用norton的ghost备份,可以针对整个分区进行备份,由于个人计算机的数据量通常不大,备份较容易。如果是主机提供internet方面的服务,该如何备份?比如论坛的文章交流等。备份哪些数据:1.操作系统本身需要备份的文件:/etc/... 阅读全文

posted @ 2016-07-23 11:28 sichenzhao 阅读(150) 评论(0) 推荐(0)

linux的x window system
摘要:为什么叫x window system:因为就英文字母来看,x是在w的后面。当时在开发x window system的时候,就希望这个窗口界面不要与硬件有强烈的相关性,不然就等于是一个操作系统了,因此x当初就是以应用程序的概念开发的。x窗口也被称为x11,这个窗口是利... 阅读全文

posted @ 2016-07-23 10:49 sichenzhao 阅读(488) 评论(0) 推荐(0)

reboot和init 6的区别
摘要:偶然一次机会:利用init 6重启机器,打开浏览器发现竟然还是保存这关机前的浏览网页,但是利用reboot就没有。对此进行了搜索,结果如下:对两个命令用man查询了一下:init 6 Stop the operating system and reboot to th... 阅读全文

posted @ 2016-07-22 21:39 sichenzhao 阅读(934) 评论(0) 推荐(0)

ubuntu 用root登陆图形界面
摘要:首先要设置root的密码sudo passwd root设置root密码,输入两次root密码设置完成后进入cd /usr/share/lightdm/lightdm.conf.d/目录下找到50-unity-greeter.config这个文件添加以下代码:user... 阅读全文

posted @ 2016-07-22 21:26 sichenzhao 阅读(245) 评论(0) 推荐(0)

linux软件安装简介(apt和dpkg)
摘要:之前博文中提到过以源代码的方式来安装软件,也就是利用tarball进行软件的安装,但是比较麻烦,每次安装都需要检测操作系统与环境,设置编译参数,实际的编译等如果我的linux系统和厂商的系统一模一样,那么在厂商的系统上面编译好的软件自然可以在自己的系统上运行,即类似w... 阅读全文

posted @ 2016-07-22 20:51 sichenzhao 阅读(2485) 评论(0) 推荐(0)

linux的函数库管理
摘要:动态和静态函数库静态函数库的特色:拓展名:为.a,函数库通常拓展名为lib×××.a类型编译行为:会直接整合到执行程序当中,所以利用静态函数库编译成的文件会比较大独立执行的状态:最大的优点就是编译成功的可执行文件可以独立执行,不需要向外部要求读取函数库内容升级难易度:... 阅读全文

posted @ 2016-07-22 20:02 sichenzhao 阅读(133) 评论(0) 推荐(0)

tarball的安装
摘要:tarball是以tar这个命令来打包和压缩的文件,整个安装的操作是这样的:1. 取得源文件,将tarball文件在/usr/local/src目录解压缩2. 取得步骤流程:进入新建立目录下面,去查阅install/readme等内容3. 建立makefile,以自动... 阅读全文

posted @ 2016-07-22 17:03 sichenzhao 阅读(344) 评论(0) 推荐(0)

make命令进行宏编译
摘要:如果我的执行文件要包含四个源文件,那么我得做以下几件事:分别对四个源文件进行gcc -c目标文件编译,产生四个.o文件;再将这四个目标文件通过gcc -o进行链接成为可执行文件,同时加入libm函数库,也就是-lm。可以看出编译的过程需要很多的操作,而且如果要重新编译... 阅读全文

posted @ 2016-07-22 13:26 sichenzhao 阅读(1235) 评论(0) 推荐(0)

linux源码编写入门gcc
摘要:使用c语言进行编译的简单实例:编写程序源代码:hello world开始编译和测试执行在默认状态下,如果直接以gcc编译源码,并没有加上任何参数,则执行文件会默认为a.out这个文件名。然后执行这个a.out文件就行那么如果我想产生目标文件object file来进行... 阅读全文

posted @ 2016-07-22 11:22 sichenzhao 阅读(302) 评论(0) 推荐(0)

linux软件安装:源码(1)
摘要:在windows上安装软件只要不断点击下一步下一步就行,但是无法修改软件的源代码,如果要增加或者减少软件的某些功能,只能求助于当初发行软件的厂商了。而linux上面的软件几乎都经过GPL授权的,也就是说每个软件都提供源代码,可以自行修改程序。何为GPL:GPL,是Ge... 阅读全文

posted @ 2016-07-21 21:45 sichenzhao 阅读(144) 评论(0) 推荐(0)

boot loader:Grub
摘要:boot loader是载入内核的重要工具,没有boot loader的话,kernel根本没办法被内核加载的MBR是整个硬盘的第一个sector内的一个块,大小只有446bytes。但loader的大小不止446bytes,为了解决这个问题,linux将boot l... 阅读全文

posted @ 2016-07-21 17:55 sichenzhao 阅读(125) 评论(0) 推荐(0)

linux启动流程 (1)
摘要:启动流程一览:1.加载BIOS的硬件信息与进行自我测试,并依据设置取得第一个可启动的设备2.读取并执行第一个启动设备内MBR的boot loader(也就是grub,spfdisk等程序)3.依据boot loader的设置加载kernel,kernel会开始检测硬件... 阅读全文

posted @ 2016-07-21 16:11 sichenzhao 阅读(121) 评论(0) 推荐(0)

导航