随笔分类 - Linux系统编程
摘要:Dear all, 更新一节Linux网络驱动视频——3.TCP-IP & Linux 模型简介,下节课开始正式编写driver。 B站链接:https://www.bilibili.com/video/BV1DG4y1s7ad/?vd_source=8eed9c51981306d5bdd42edc
阅读全文
摘要:hello all, 有更新第二节Linux网络驱动教程,让大家了解一下什么是RFC? B站链接:https://www.bilibili.com/video/BV1SP411J7sF/?spm_id_from=333.999.0.0&vd_source=8eed9c51981306d5bdd42e
阅读全文
摘要:Hello, 大家好,好久不见,准备更新Linux网络驱动的教学视频,B站连接: https://www.bilibili.com/video/BV1jd4y1u78u?spm_id_from=333.999.0.0&vd_source=8eed9c51981306d5bdd42edc0733390
阅读全文
摘要:线程是进程中最小的执行单位,是进程中的一个实体,是被系统独立调度和分派的基本单位,它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 线程,其实也是轻量级的进程。一个进程,即使我们没有主动创建线程,也会有一个默认的主线程(即
阅读全文
摘要:1.管道 对于具有公共祖先的进程,其管道是建立在3-4G的内核空间中的。每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制
阅读全文
摘要:fork 函数,创建子进程。 函数原型: 关于其返回值: fork函数一次调用,两次返回。子进程中返回0,父进程中,返回子进程的ID。如果fork失败,返回-1.并且不会创建子进程,同时错误代码errno会被设置。 fork的读时共享,写时复制机制。子进程拥有和父进程一样的0-3G用户空间,但是3-
阅读全文
摘要:ls -l 通常会显示r w x权限,分别对应:读,写,执行权限。 但是有时我么会看到,s或t这类权限标识。 eg: 首先在主目录下面的文件夹里面编译并执行该test.c文件,生成a.out可执行程序,由于umask为0002的原因,权限为:775而不是777。 在此时执行a.out会生成hello
阅读全文
摘要:通常,现在的操作系统都支持多任务,意味着操作系统(给用户)造成了一种假象,(让用 户觉得) 它同时能够做多件事情,事实上,它是快速地轮换执行这些任务的。Linux 内核通过使用进程,来管理多任务。通过进程,Linux 安排不同的程序等待使用 CPU。有时候,计算机变得呆滞,运行缓慢,或者一个应用程序
阅读全文
摘要:Unix 传统中的操作系统不同于那些 MS-DOS 传统中的系统,区别在于它们不仅是多任务 系统,而且也是多用户系统。这到底意味着什么?它意味着多个用户可以在同一时间使用同一台计算机。然而一个典型的计算机可能只有一个键盘和一个监视器,但是它仍然可以被多个用户使用。例如,如果一台计算机连接到一个网络或
阅读全文
摘要:开玩笑地说,我经常把 Unix 描述为“这个操作系统是为喜欢敲键盘的人们服务的。”当 然,Unix 甚至还有一个命令行,这个事实是个确凿的证据,证明了我所说的话。但是命令行用户不喜欢敲入那么多字。那又为什么如此多的命令会有这样简短的命令名,像 cp,ls,mv,和rm?事实上,命令行最为珍视的目标之
阅读全文
摘要:(字符) 展开每一次你输入一个命令,然后按下 enter 键,在 bash 执行你的命令之前, bash 会对输入的字符完成几个步骤处理。我们已经知道两三个案例,怎样一个简单的字符序列,例如 “*”, 对shell 来说,有很多的涵义。使这个发生的过程叫做(字符)展开。通过展开,你输入的字符,在 s
阅读全文
摘要:传统上,一个程序一般会有这几个段: .test, .data, .bss段。下面就来说一说各段的作用是什么,以此了解c语言中的各元素(函数和变量)是被放在哪一个段中的。 指令段: 地改写。 处理器所需加工的数据是放在.data,.bss,.rdata段的。当然,除了这几个段外,数据也可以来自堆和栈(
阅读全文
摘要:启动GDB:(其中我的app是编译之后的可执行文件) 退出命令:quit或者简写q 帮助获取: gdb通过完备的在线帮助,使我们使用起来更加方便.所有的帮助信息都是通过help命令获得的,运行help命令时,如果不指定参数,gdb将输出分类信息: 可以通过分类名作为help指定的参数来获得帮助,以断
阅读全文
摘要:这堂课,我们来介绍可能是命令行最酷的特性。它叫做 I/O 重定向。“I/O” 代表输入/输出,通过这个工具,你可以重定向命令的输入输出,命令的输入来自文件,而输出也存到文件。也可以把多个命令连接起来组成一个强大的命令管道。为了炫耀这个工具,我们将叙述以下命令: • cat -连接文件• sort -
阅读全文
摘要:我们知道,一个磁盘可以划分成多个分区,每个分区必须先用格式化工具(例如某种mkfs命令)格式化成某种格式的文件系统,然后才能存储文件,格式化的过程会在磁盘上写一些管理存储布局的信息。下图是一个磁盘分区格式化成ext2文件系统后的存储布局。文件系统中存储的最小单位是块(Block),一个块究竟多大是在
阅读全文
摘要:在这之前,我们已经知道了一系列神秘的命令,每个命令都有自己奇妙的选项和参数。在 这一章中,我们将试图去掉一些神秘性,甚至创建我们自己的命令。这一章将介绍以下命令:• type –说明怎样解释一个命令名• which –显示会执行哪个可执行程序• man –显示命令手册页• apropos –显示一系
阅读全文
摘要:用到的指令: 在创建游戏场之前,先要复习一个关于链接的知识: ln 命令即可创建硬链接,也可以创建符号链接。可以用其中一种方法来使用它:ln file link创建硬链接,和:ln -s item link创建符号链接,“item” 可以是一个文件或是一个目录。 硬链接硬链接和符号链接比起来,硬链接
阅读全文
摘要:函数说明:每一个已打开的文件都有一个读写位置, 当打开文件时通常其读写位置是指向文件开头, 若是以附加的方式打开文件(如O_APPEND), 则读写位置会指向文件尾. 当read()或write()时, 读写位置会随之增加,lseek()便是用来控制该文件的读写位置. 参数fildes 为已打开的文
阅读全文
摘要:读常规文件是不会阻塞的,不管读多少字节,read一定会在有限的时间内返回。从终端设备或网络读则不一定,如果从终端输入的数据没有换行符,调用read读终端设备就会阻塞,如果网络上没有接收到数据包,调用read从网络读就会阻塞,至于会阻塞多长时间也是不确定的,如果一直没有数据到达就一直阻塞在那里。同样,
阅读全文
摘要:read函数从打开的设备或文件中读取数据。 #include <unistd.h>ssize_t read(int fd, void *buf, size_t count);返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0 读常规文
阅读全文