- 01-Linux命令基础习惯
- 02-类Unix系统目录
- 03-目录和文件操作1
- 04-目录和文件操作2
- 05-软连接和硬链接
- 06-创建修改用户和用户组
- 07-find命令1
- 08-午后回顾
- 09-find命令2
- 10-grep和xargs
- 11-xargs加强和awk说明
- 12-软件包安装
- 13-压缩命令gzip和bzip2
- 14-rar压缩和zip压缩
- 15-其他命令
- 16-总结
- 17-复习
- 18-vim的三种工作模式
- 19-vim基本操作-跳转和删字符
- 20-vim基本操作-删除
- 21-vim基本操作-复制粘贴
- 22-vim基本操作-查找替换
- 23-vim基本操作-其他
- 24-vim配置思路
- 25-gcc编译4步骤
- 26-gcc编译常用参数
- 27-午后复习
- 28-动态库和静态库理论比对
- 29-静态库制作
- 30-静态库使用及头文件对应
- 31-动态库制作-生成与位置无关代码
- 32-动态库制作-演示
- 33-动态库加载错误原因及解决方式
- 34-动态库加载错误原因及解决方式2
- 35-扩展讲解-数据段合并
- 36-总结
- 37-复习
- 38-gdb调试基础指令
- 39-gdb调试其他指令
- 40-gdb常见错误说明
- 41-makefile基础规则
- 42-makefile一个规则
- 43-午后回顾
- 44-makefile2个函数和clean
- 45-makefile3个自动变量和模式规则
- 46-习题和作业
- 47-系统编程阶段说再前面的话
- 48-open函数
- 49-总结
- 50-复习
- 51-makefile作业
- 52-read和write实现cp
- 53-系统调用和库函数比较---预读入缓输出
- 54-文件描述符
- 55-阻塞和非阻塞
- 56-fcntl改文件属性
- 57-午后回顾
- 58-lseek函数
- 59-传入传出参数
- 60-目录项和inode
- 61-stat函数
- 62-lstat和stat
- 63-传出参数当返回值
- 64-link和UNlink隐式回收
- 65-文件目录rwx权限差异
- 66-目录操作函数
- 67-总结
- 68-复习
- 69-递归遍历目录思路分析
- 70-递归遍历目录代码预览
- 71-递归遍历目录实现
- 72-递归遍历目录总结
- 73-dup和dup2
- 74-fcntl实现dup描述符
- 75-复习
- 76-进程和程序以及cpu相关
- 77-虚拟内存和物理内存映射关系
- 78-pcb进程控制块
- 79-环境变量
- 80-fork函数原理
- 81-fork创建子进程
- 82-getpid和getppid
- 83-循环创建多个子进程
- 84-父子进程共享哪些内容
- 85-父子进程共享
- 86 - 总结
- 87 -复习
- 88-父子进程gdb调试
- 89-exec函数族原理
- 90-execlp和execl函数
- 91-exec函数族特性
- 92-孤儿进程和僵尸进程
- 93-wait回收子进程
- 94-获取子进程退出值和异常终止信号
- 95-waitpid回收子进程
- 96-中午回顾
- 97-错误解析
- 98-waitpid回收多个子进程
- 99-wait和waitpid总结
- 100-进程间通信常见方式
- 101-管道的特质
- 102-管道的基本用法
- 103-管道读写行为
- 104-父子进程通信练习分析
- 105-总结
- 106-复习
- 107-父子进程lswc-l
- 108-兄弟进程间通信
- 109-多个读写端操作管道和管道缓冲区大小
- 110-命名管道fifo的创建和原理
- 111-fifo实现非血缘关系进程间通信avi
- 112-文件用于进程间通信
- 113-mmap函数原型
- 114-复习
- 115-mmap建立映射区
- 116-mmap使用注意事项1
- 117-mmap使用注意事项2
- 118-mmap总结
- 119-父子进程间mmap通信
- 120-无血缘关系进程间mmap通信
- 121-mmap总结
- 122-mmap匿名映射区
- 123-总结
- 124-复习
- 125-信号的概念和机制
- 126-与信号相关的概念
- 127-信号屏蔽字和未决信号集
- 128-信号四要素和常规信号一览
- 129-alarm函数
- 130-kill函数和kill命令
- 131-setitimer函数
- 132-午后回顾
- 133-信号集操作函数
- 134-信号集操作函数使用原理分析
- 135-信号集操作函数练习
- 136-signal实现信号捕捉
- 137-sigaction实现信号捕捉
- 138-信号捕捉的特性
- 139-内核实现信号捕捉简析
- 140-借助信号捕捉回收子进程
- 141-慢速系统调用中断
- 142-总结
- 143-复习
- 144-复习子进程借助信号回收
- 145-会话
- 146-进程组
- 147-守护进程创建步骤分析
- 148-守护进程创建
- 149-三级映射
- 150-线程概念
- 151-线程共享和非共享
- 152-中午复习
- 153-创建线程
- 154-循环创建多个子线程
- 155-错误分析
- 156-线程间全局变量共享
- 157-pthread_exit退出
- 158-pthread_join
- 159-pthread_join作业
- 160-pthread_cancel函数
- 161-检查出错返回
- 162-线程分离pthread_detach
- 163-进程和线程控制原语比对
- 164-线程属性设置分离线程
- 165-线程使用注意事项
- 166-总结
- 167-复习
- 168-线程同步概念
- 169-锁使用的注意事项
- 170-借助互斥锁管理共享数据实现同步
- 171-互斥锁使用技巧
- 172-try锁
- 173-读写锁操作函数原型
- 174-死锁两种
- 175-读写锁原理
- 176-读写锁
- 177-午后复习
- 178-静态初始化条件变量和互斥量
- 179-条件变量相关函数wait
- 180-条件变量的生产者消费者模型分析
- 181-条件变量实现生产者消费者代码预览
- 182-条件变量实现生产者消费者代码实现
- 183-多个消费者使用while做
- 184-条件变量signal注意事项
- 185-信号量概念及相关操作函数
- 186-信号量实现的生产者消费者
- 187-总结
目前Linux 已经被广泛的使用,因此有必要简单介绍一下,在Linux 系统下如何进行C语言程序设计。首先介绍在Linux 下如何编辑C 语言源程序,接下来介绍如何编译C 语言源程序,最好介绍如何调试与运行C 语言源程序。
Linux是一个开源的操作系统,它最初仅仅只是芬兰Helsinki大学的一位年轻学生Linux Torvalds作为爱好开发的。Linus对Minix(一个小型的UNIX系统)很感兴趣,并且决定开发一个比Minix更好的系统。 他在1991年开始开发并且当年发布0.02版本,并继续坚持直到1994年发布了Linux内核1.0版本,也就是所有Linux系统的核心。它基于GNU通用公共许可证开发和发布,向每位操作它的人免费开放源码。这个内核建立了Linux操作系统开发最基本的部分,直到现在,依旧有大量的公司、组织和团队源源不断地发布着他们自己基于Linux内核开发的操作系统版本。
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。
也正由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
嵌入式linux属于高度裁剪过的Linux,它将桌面Linux所具有的大部分应用功能(如GUI 工具,计算器,电子邮件 etc.)和部分系统功能省略,集成了开发者希望嵌入式产品所具有的特殊应用功能(例如一款以Linux为系统的触摸式海事导航仪可以根据功能需要去除不需要的功能块,但加入GPS定位,航速航向计算,航线规划,触摸检测和对应功能实现等功能)并结合Linux本身的优势特点,提高产品实时性与安全性。此外,在物联网人工智能时代背景下,生活中那些常见的Linux应用,都离不开嵌入式人工智能与物联网,万物智联正在实现!