Linux 下一些调试工具汇总

trace-cmd - interacts with Ftrace Linux kernel internal tracer

trace-cmd 以交互式的方式用来追踪内核函数,它是 Ftrace 的前端。
使用请参考:

kernelshark - graphical reader for trace-cmd(1) output

kernelshark 用来图形化的显示 trace-cmd 的输出结果。
使用请参考:

strace - trace system calls and signals

strace是一个用于Linux的诊断、调试的用户空间工具。它可以用来查看和修改进程与Linux内核之间的交互行为,其中包括系统调用、信号传递和进程状态。
使用参考:

gcore - Generate a core file of a running program

可以生成正在运行的程序的core文件,这个core 文件与程序崩溃时生成的 core 文件一致,但是使用 gcore 不会影响原程序的运行。

sudo gcore {pid}

gdb - The GNU Debugger

下面的步骤可用来查看运行的进程的栈帧信息。

$ sudo gdb
(gdb) attach {pid}
(gdb) info threads
(gdb) thread apply all bt
(gdb) p mutex1
(gdb) detach

比如,如果出现 deadlock,会出现如下信息:

Thread 0x7f4a8303b700 (LWP 3790) "a.out" __lll_lock_wait (
    futex=futex@entry=0x55c928122080 <mtx2>, private=0) at lowlevellock.c:52

gprof - display call graph profile data

Gprof是一个性能分析程序,用来收集和整理程序的统计数据。它通过在每个函数的头部和尾部插入代码,以收集时间信息。当正常运行的程序时,它会创建包含原始数据的"gmon.out",然后 gprof 程序将其转化为统计数据进行展示。

使用步骤如下

  1. 添加 -pg 的编译选项
  2. 运行一次程序
  3. 生成统计数据
gcc -pg test.c -o test
./test
gprof test gmon.out > analysis.txt

注:如果不先运行一次程序,就会出现如下错误: gmon.out no such file or directory。因为只有程序运行后才会产生 gmon.out。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本书是由知名安全机构ImmunityInc的资深黑帽JustinSeitz先生主笔撰写的一本关于编程语言Python如何被广泛应用于黑客与逆向工程领域的书籍.老牌黑客,同时也是Immunity Inc的创始人兼首席技术执行官(CTO)Dave Aitel为本书担任了技术编辑一职。本书的绝大部分篇幅着眼于黑客技术领域中的两大经久不衰的话题:逆向工程与漏洞挖掘,并向读者呈现了几乎每个逆向工程师或安全研究人员在日常工作中所面临的各种场景,其中包括:如何设计?构建自己的调试工具,如何自动化实现烦琐的逆向分析任务,如何设计与构建自己的fuzzing工具,如何利用fuzzing测试来找出存在于软件产品中的安全漏洞,一些小技巧诸如钩子与注入技术的应用,以及对一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介绍。作者借助于如今黑客社区中备受青睐的编程语言Python引领读者构建出精悍的脚本程序来——应对上述这些问题。出现在本书中的相当一部分Python代码实例借鉴或直接来源于一些优秀的开源安全项目,诸如Pedram Amini的Paimei,由此读者可以领略到安全研究者?是如何将黑客艺术与工程技术优雅融合来解决那些棘手问题的。   本书适合热衷于黑客技术,特别是与逆向工程与漏洞挖掘领域相关的读者,以及所有对Python编程感兴趣的读者阅读与参考。 目录 第1章 搭建开发环境   1.1 操作系统要求   1.2获取和安装Python 2.5   1.2.1 在Windows下安装Python   1.2.2 在Linux下安装Python   1.3 安装Eclipse和PyDev   1.3.1 黑客挚友:ctype库   1.3.2 使用动态链接库   1.3.3 构建C数据类型   1.3.4 按引用传参   1.3.5 定义结构体和联合体   第2章 调试器原理和设计   2.1 通用寄存器   2.2 栈   2.3 调试事件   2.4 断点   2.4.1 软断点   2.4.2 硬件断点   2.4.3 内存断点   第3? 构建自己的Windows调试器   3.1 Debugee,敢问你在何处   3.2 获取寄存器状态信息   3.2.1 线程枚举   3.2.2功能整合   3.3 实现调试事件处理例程   3.4 无所不能的断点   3.4.1 软断点   3.4.2 硬件断点   3.4.3 内存断点   3.5 总结   第4章 PyDbg——WindoWS下的纯Python调试器   4.1 扩展断点处理例程   4.2 非法内存操作处理例程   4.3 进程快照   4.3.1 获取进程快照   4.3.2汇总与整合   第5章 Immunity Debugger一两极世界的最佳选择   5.1 安装Immunity Debugger   5.2 Immunity Debugger l01   5.2.1 PyCommand命令   5.2.2 PyHooks   5.3 Exploit(漏洞利用程序)开发   5.3.1 搜寻exploit友好指令   5.3.2“坏”字符过滤   5.3.3 绕过Windows下的DEP机制   5.4 破除恶意软件中的反调试例程   5.4 1 lsDebuugerPresent   5.4.2 破除进程枚举例程   第6章 钩子的艺术   6.1 使用PyDbg部署软钩子   6.2 使用Immunity Debugger部署硬钩子   第7章 DLL注入与代码注入技术   7.1 创建远程线程   7.1.1 DLL注入   7.1.2 代码注入   第8章 Fuzzing   第9章 Sulley   第10章 面向Windows驱动的Fuzzing测试技术   第11章 IDAPyrhon——IDA PRO环境下的Pyrhon   第12章 PYEmu——脚本驱动式仿真器
Nginx是用于HTTP,HTTPS,SMTP,POP3和IMAP协议的开源反向代理服务器,以及负载平衡器,HTTP缓存和Web服务器(原始服务器)。Nginx项目一开始就非常关注高并发,高性能和低内存使用。它获得了两节式BSD许可,并在Linux,BSD变体,Mac OS X,Solaris,AIX,HP-UX以及其他* nix版本上运行。它还具有用于Microsoft Windows的概念证明端口。 托管一些简单的静态内容 $ docker run --name some-nginx -v /some/content:/usr/share/nginx/html:ro -d nginx 或者,Dockerfile可以使用简单的方法来生成包含必要内容的新图像(这比上面的绑定安装要干净得多): FROM nginx COPY static-html-directory /usr/share/nginx/html 将此文件放置在与目录相同的目录中(“ static-html-directory”),运行docker build -t some-content-nginx .,然后启动容器: $ docker run --name some-nginx -d some-content-nginx 暴露外部端口 $ docker run --name some-nginx -d -p 8080:80 some-content-nginx 然后,您可以在浏览器中点击http://localhost:8080或http://host-ip:8080。 复杂的配置 $ docker run --name my-custom-nginx-container -v /host/path/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx 有关nginx配置文件的语法的信息,请参阅官方文档(特别是《入门指南》)。 如果您希望采用默认配置,请使用以下类似内容从运行的nginx容器中复制它: $ docker run --name tmp-nginx-container -d nginx $ docker cp tmp-nginx-container:/etc/nginx/nginx.conf /host/path/nginx.conf $ docker rm -f tmp-nginx-container 也可以使用简单的Dockerfile(在中/host/path/)更干净地完成此操作: FROM nginx COPY nginx.conf /etc/nginx/nginx.conf 如果您CMD在Dockerfile中添加了自定义,请确保将包含-g daemon off;在其中CMD,以使nginx保持在前台,以便Docker可以正确跟踪进程(否则您的容器将在启动后立即停止)! 然后使用构建图像docker build -t custom-nginx .并按如下所示运行它: $ docker run --name my-custom-nginx-container -d custom-nginx 在Nginx配置中使用环境变量 现成的nginx不支持大多数配置块中的环境变量。但是,envsubst如果您需要在nginx启动之前动态生成nginx配置,则可以将其用作解决方法。 这是使用docker-compose.yml的示例: web: image: nginx volumes: - ./mysite.template:/etc/nginx/conf.d/mysite.template ports: - "8080:80" environment: - NGINX_HOST=foobar.com - NGINX_PORT=80 command: /bin/bash -c "envsubst /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'" mysite.template然后,该文件可能包含如下变量引用: listen ${NGINX_PORT}; 在只读模式下运行Nginx 要以只读模式运行nginx,您需要将Docker卷安装到nginx写入信息的每个位置。默认的nginx配置需要对/var/cache和的写权限/var/run。可以通过如下运行nginx轻松地完成此操作: $ d
第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig配置IP地址及辅助IP地址 1.2.3 禁用和启用网卡 1.2.4 更改网卡MAC地址 1.2.5 route命令设置网关 1.2.6 网卡配置文件 1.2.7 setup命令 1.2.8 修改resolv.conf设置DNS 1.3 网络环境测试 1.3.1 ping命令检测网络状况 1.3.2 netstat命令 1.3.3 nslookup测试域名解析 1.4 本章习题 第2章 Samba服务 2.1 Samba原理 2.1.1 Samba概述 2.1.2 Samba应用环境 2.1.3 Samba工作原理 2.2 安装Samba服务 2.2.1 Samba所需软件 2.2.2 Samba的安装 2.3 Samba常规服务器配置 2.3.1 主要配置文件smb.conf 2.3.2 Samba服务日志文件 2.3.3 Samba服务密码文件 2.3.4 Samba的启动与停止 2.3.5 share服务器实例及详解 2.3.6 user服务器实例及详解 2.4 Samba高级服务器配置 2.4.1 用户账号映射 2.4.2 客户端访问控制 2.4.3 设置Samba的权限 2.4.4 Samba的隐藏共享 2.5 Samba客户端配置 2.5.1 Linux客户端访问Samba共享 2.5.2 Windows客户端访问Samba共享 2.6 Samba的打印共享 2.7 Samba企业实战与应用 2.7.1 企业环境及需求 2.7.2 需求分析 2.7.3 解决方案 2.8 Samba排错 2.9 本章习题 2.10 smb.conf字段汇总 第3章 DHCP服务 3.1 DHCP原理 3.1.1 DHCP概述 3.1.2 DHCP的应用环境 3.1.3 DHCP术语 3.1.4 DHCP工作原理 3.2 安装DHCP服务 3.2.1 DHCP所需软件 3.2.2 DHCP的安装 3.3 DHCP常规服务器配置 3.3.1 主配置文件dhcpd.conf 3.3.2 常用参数介绍 3.3.3 常用声明介绍 3.3.4 常用选项介绍 3.3.5 租约数据库文件 3.3.6 应用案例Ⅰ 3.3.7 DHCP的启动与停止 3.3.8 IP地址绑定 3.3.9 应用案例Ⅱ 3.4 DHCP高级服务器配置 3.4.1 DHCP规划 3.4.2 DHCP多作用域设置 3.4.3 DHCP中继代理 3.5 DHCP客户端配置 3.5.1 Linux客户端配置 3.5.2 Windows客户端配置 3.6 DHCP服务配置排错 3.6.1 dhcpd 3.6.2 租约文件 3.6.3 ping 3.6.4 MULTICAST 3.6.5 查看系统日志 3.7 本章习题 3.8 字段汇总 第4章 DNS服务 4.1 DNS原理 4.1.1 DNS简介 4.1.2 域名空间 4.1.3 区(Zone) 4.1.4 主域名服务器与辅助域名服务器 4.1.6 DNS查询原理及流程 4.1.7 正向解析与反向解析 4.1.8 资源记录 4.2 安装DNS服务 4.2.1 BIND简介 4.2.2 DNS所需软件 4.2.3 DNS的安装 4.3 DNS常规服务器配置 4.3.1 主配置文件named.conf 4.3.2 配置正向解析区域 4.3.3 配置反向解析区域 4.3.4 区域文件与资源记录 4.3.5 SOA资源记录 4.3.6 NS记录 4.3.7 A资源记录 4.3.8 DNS应用案例Ⅰ 4.3.9 其他常用资源记录 4.3.10 根区域设置及对应区域文件 4.3.11 DNS的启动与停止 4.3.12 host命令测试DNS 4.3.13 rndc 4.3.14 DNS应用案例Ⅱ 4.4 DNS高级服务器配置 4.4.1 辅助DNS服务器及区域数据同步 4.4.2 子域与区域委派 4.4.3 转发服务器 4.4.4 缓存服务器(Caching-only Name Server) 4.5 DNS客户端配置 4.5.1 RHEL5客户端配置 4.5.2 Windows客户端配置 4.6 DNS企业实战与应用 4.6.1 企业环境 4.6.2 需求分析 4.6.3 解决方案 4.7 DNS排错 4.7.1 rndc reload 4.7.2 查看启动信息 4.7.3 查看端口 4.7.4 权限问题 4.8 本章习题 4.9 字段汇总 第5章 Sendmail服务 5.1 Sendmail原理 5.1.1 Sendmail概述 5.1.2 邮件系统工作原理 5.1.3 简单邮件传输协议(SMTP) 5.1.4 POP3协议 5.1.5 IMAP协议 5.1.6 邮件中继 5.1.7 邮件认证机制 5.2 安装Sendmail服务 5.2.1 Sendmail服务软件简介 5.2.2 Sendmail服务安装 5.2.3 相关的配置文档 5.3 Sendmail常规服务器配置 5.3.1 sendmail.cf和sendmail.mc 5.3.2 m4工具的使用 5.3.3 local-host-names文件 5.3.4 Sendmail的启动与停止 5.3.5 POP3和IMAP 5.3.6 Sendmail应用案例Ⅰ 5.3.7 别名和群发设置 5.3.8 利用access文件设置邮件中继 5.3.10 Sendmail应用案例Ⅱ 5.3.10 Sendmail调试 5.4 Sendmail高级服务器配置 5.4.1 Sendmail认证 5.4.2 邮箱容量设置 5.4.3 POP3S和IMAPS设置 5.5 Sendmail客户端配置 5.5.1 Linux客户端 5.5.2 Windows客户端 5.6 Sendmail服务企业实战与应用 5.6.1 企业环境 5.6.2 需求分析 5.6.3 解决方案 5.7 Sendmail排错 5.7.1 无法定位邮件服务器 5.7.2 身份验证失败 5.7.3 邮箱配额限制 5.8 本章习题 5.9 字段汇总 第6章 FTP服务 6.1 FTP原理 6.1.1 FTP概述 6.1.2 FTP工作原理 6.1.3 主动与被动模式 6.1.4 FTP用户分类 6.2 安装FTP服务 6.2.1 vsftp所需软件 6.2.2 vsftp的安装 6.2.3 vsftp相关文档 6.3 常规服务器配置 6.3.1 主配置文件vsftpd.conf 6.3.2 实现匿名用户访问 6.3.3 实现实体用户访问 6.3.4 FTP应用案例Ⅰ 6.3.5 限制用户目录 6.3.6 限制服务器连接数 6.3.7 定制FTP目录欢迎信息 6.3.8 限制下载速度 6.3.9 FTP的启动与停止 6.3.10 FTP应用案例Ⅱ 6.4 高级服务器配置 6.4.1 设置VSFTP虚拟账号 6.4.2 使用xinetd控制vsftpd 6.5 客户端配置 6.5.1 Linux客户端配置 6.5.2 Windows客户端配置 6.6 企业实战与应用 6.6.1 企业环境 6.6.2 需求分析 6.6.3 解决方案 6.7 FTP排错 6.8 本章习题 6.9 字段汇总 第7章 Web服务 7.1 WWW原理 7.1.1 WWW概述 7.1.2 WWW工作原理 7.1.3 LAMP模型 7.1.4 SSL和CA 7.2 安装Web服务 7.2.1 Apache简介 7.2.2 Apache所需软件 7.2.3 Apache的安装 7.3 Apache常规服务器配置 7.3.1 主配置文件httpd.conf 7.3.2 根目录设置(ServerRoot) 7.3.3 超时设置 7.3.4 客户端连接数限制 7.3.5 设置管理员邮件地址 7.3.6 设置主机名称 7.3.7 设置文档目录 7.3.8 设置首页 7.3.9 网页编码设置 7.3.10 Apache的启动与停止 7.3.11 Web应用案例 7.3.12 Apache日志设置 7.3.13 目录设置 7.3.14 虚拟目录 7.3.15 为Apache建立专门的用户和组 7.4 Apache高级服务器配置 7.4.1 配置Apache虚拟主机 7.4.2 Apache访问控制 7.4.3 htaccess实现用户认证 7.4.4 实现HTTPS 7.5 企业实战与应用 7.5.1 企业环境及需求 7.5.2 需求分析 7.5.3 解决方案 7.6 本章习题 7.7 字段汇总 第8章 iptables 8.1 iptables原理 8.1.1 防火墙概述 8.1.2 iptables简介 8.1.3 iptables工作原理 8.1.4 NAT工作原理 8.2 安装iptables 8.2.1 iptables的安装 8.2.2 iptables的启动与停止 8.3 防火墙配置 8.3.1 iptables的基本语法 8.3.2 设置默认策略 8.3.3 查看iptables规则 8.3.4 添加、删除、修改规则 8.3.5 保存规则与恢复 8.3.6 常用实例及技巧分析 8.3.7 使用日志监控iptables 8.4 NAT(网络地址转换) 8.4.1 iptables实现NAT 8.4.2 配置SNAT 8.4.3 配置DNAT 8.4.4 MASQUERADE 8.4.5 连接跟踪 8.5 企业实战与应用 8.5.1 企业环境及需求 8.5.2 需求分析 8.5.3 解决方案 8.6 本章习题 8.7 字段汇总 第9章 代理服务 9.1 代理服务原理 9.1.1 什么是代理服务器 9.1.2 代理服务器的工作原理 9.1.3 代理服务器的作用 9.2 安装Squid 9.2.1 Squid简介 9.2.2 Squid的安装 9.3 Squid常规服务器配置 9.3.1 Squid主配置文件squid.conf 9.3.2 设置Squid监听的端口号 9.3.3 内存缓冲设置 9.3.4 Squid磁盘缓存 9.3.5 设置缓存日志 9.3.6 设置访问日志文件 9.3.7 设置网页缓存日志 9.3.8 设置Squid的拥有者 9.3.9 设置Squid所属组 9.3.10 设置DNS服务器地址 9.3.11 设置Squid可见主机名 9.3.12 设置管理员E-mail地址 9.3.13 设置访问控制列表 9.3.14 Squid的启动和停止 9.3.15 代理服务应用案例 9.4 Squid高级服务器配置 9.4.1 代理服务器用户访问控制 9.4.2 实现透明代理 9.4.3 反向代理加速Web网站 9.5 代理客户端配置 9.5.1 Linux客户端配置 9.5.2 Windows客户端配置 9.6 Squid企业实战与应用 9.6.1 企业环境 9.6.2 需求分析 9.6.3 解决方案 9.6.4 真实案例配置文件 9.7 本章习题 9.8 字段汇总 第10章 NFS 10.1 NFS原理 10.1.1 NFS概述 10.1.2 RPC简介 10.1.3 NFS工作原理 10.2 安装NFS 10.2.1 NFS所需软件 10.2.2 NFS的安装 10.2.3 NFS相关文档 10.3 常规服务器配置 10.3.1 架设流程 10.3.1 主配置文件exports 10.3.2 NFS应用实例 10.3.3 NFS的启动与停止 10.3.4 exportfs命令 10.3.5 配置NFS固定端口 10.3.6 测试NFS服务 10.4 客户端配置Linux客户端的使用 10.5 NFS排错 10.6 本章练习 10.7 字段汇总 第11章 NIS 11.1 NIS原理 11.1.1 NIS简介 11.1.2 NIS工作原理 11.1.3 NIS工作模式 11.2 NIS的安装 11.2.1 NIS所需软件 11.2.2 安装NIS 11.2.3 NIS相关文档 11.3 服务器端配置 11.3.1 设置NIS域名 11.3.2 主配置文件 11.3.3 创建NIS数据库 11.3.4 建立信任群 11.3.5 配置多NIS服务器 11.3.6 NIS固定端口设置 11.3.7 自动挂载NIS用户主目录 11.3.8 启动与停止NIS服务 11.3.9 NIS应用案例 11.4 客户端配置 11.4.1 所需软件 11.4.2 加入NIS域 11.4.3 修改hosts文件 11.4.4 修改密码验证方式 11.4.5 修改/etc/yp.conf文件 11.4.6 重新启动ypbind服务 11.4.7 客户端检测 11.4.8 修改用户密码 11.5 NIS排错 11.5.1 客户端无法查询NIS信息 11.5.2 添加新的数据无法生效 11.6 练习题 第12章 网络访问 12.1 远程登录服务概述 12.1.1 什么是远程登录 12.1.2 远程登录的特点 12.2 Telnet服务 12.2.1 Telnet概述 12.2.2 Telnet工作原理 12.2.3 安装Telnet程序 12.2.4 Telnet的访问控制 12.2.5 限制最大连接数 12.2.6 Telnet服务的启动与停止 12.2.7 防火墙设置 12.2.8 更改Telnet端口号 12.2.9 Linux客户端 12.2.10 Windows客户端 12.3 SSH服务 12.3.1 SSH概述 12.3.2 安装OpenSSH 12.3.3 SSH的启动与停止 12.3.4 OpenSSH配置文件 12.3.5 OpenSSH身份验证 12.3.6 OpenSSH客户端配置 12.4 本章习题 12.5 字段汇总
2021 第五届STM32中国峰会PPT汇总,共58份。 2021第五届STM32峰会围绕“工业与安全、人工智能与传感技术、云接入与连接、生态与创新”四大应用方向。在为期两天的峰会中,通过高端主题论坛、分论坛及技术研讨会, 与会者不仅可以面对面近距离参观体验,还能亲身动手操作,深入了解到基于ST及合作伙伴最新的嵌入式技术、产品设计工具、多样化实例和全方位物联网应用解决方案。 一、主会场 第五届STM32峰会主题演讲 传感器连接世界 STM32生态系统,加速你的创造力 STM32产品路线,激发你的创造力 ST目标市场及终端市场战略 二、云接入与连接研讨会 STM32WL 低功耗,广域网无线通信技术助力物联世界 STM32WB 项目设计技巧 使用Azure RTOS简化物联网应用开发_微软 让万物互联更简单之 LoRa & ST篇_利尔达 广和通无线通信模组助力物联网连接_广和通 固件云交付 & 安全烧录_创芯工坊 三、云接入与连接分会场 STM32WL长距离无线SoC STM32WB新一代无线芯片BLE应用介绍 ST60 非接触式连接激发产品创新 IO link主站,集线器和从站传感器方案 身份验证和物联网安全解决方案 快速搭建LoRa终端产品_瑞科慧联 5力全开 广和通无线通信模组推动5G互联_广和通 四、生态与创新研讨会 TouchGFX遇到STM32G0,快速实现高性价比人机交互应用解决方案 STM32CubeMX+X-Cube-TouchGFX:一站式GUI开发平台,为嵌入式产品人机交互应用升级插上翅膀 意法半导体汽车MCU的创新与生态 深入探索ULP benchmarks,理解STM32U5系列超低功耗设计创新 人工智能物联网智能家居系统_艾睿电子 工欲善其事 必先利其器 -- STM32CubeMX新特性介绍V6 工欲善其事 必先利其器 -- STM32强大调试工具集介绍 五、生态与创新分会场 STM32U5一款新的低功耗旗舰产品系列 STM32是如何引领穿戴市场 STM32 生态系统迎来重量级玩家 AzureRTOS Azure IoT 简介 Arm Cassini 项目 - 为边缘网关提供安全的云原生体验_安谋 新一代超低功耗明星产品STM32U5 之 ULP 基准解读 汽车级处理器 六、人工智能与传感技术研讨会 Wendy_Li_机器学习算法生成设计指导 STM32 在计算机视觉上的应用 ST MEMS开发平台介绍 ST MEMS传感器FSM介绍 基于STM32G474的数字通信电源(8KW)方案实现分享_文晔 基于 STM32 的 ST ToF 激光测距开发工具介绍与演示 七、人工智能与传感技术分会场 STM32 GUI应用方案分享_文晔 ST ToF 激光测距方案推动智能生活 ST IO-Link方案为工业4.0解锁_艾睿电子 RT-Thread AI套件助力AI算法快速落地_睿赛德电子科技 OpenFOTA,无代码方式实现基于ST MCU的差分OTA升级_艾拉比智能科技 八、工业与安全研讨会 STSAFE-A 生态系统介绍及工具演示 STM32MP1“最后一公里解决方案”:如何成功启动自研MP1项目开发板_V1 STM32MP1 应用技巧加速产品开发 STM32G4&H7数字能源以及工业自动化应用分享 STM32信息安全应用技巧:助力代码保护和数据安全 米尔核心板加速基于STM32MP1的产品开发_米尔电子 基于ST芯片的全栈式嵌入式培训_单片机_RTOS_Linux_百问网 活用X-CUBE-MCSDK —— 从例程到产品 九、工业与安全分会场 STM32Trust 助力新产品设计提升安全性 STM32 重塑工业控制 ST风机驱动器解决方案 ST25 NFC&RFID 产品及工业应用 硅基和宽禁带材料功率器件在工业器件的应用 赋能工业智造,构建端云融合新生态_中移物联 5G 通信电源&CCM图腾柱PFC中STM32G4 的数字电源解决方案
第一部分 Linux简介和原理介绍 第一章 概述 1.1 Linux 的历史及背景 1.1.1 什么是 Linux? 1.1.2 Linux 该怎么念? 1.1.3 Linux 的历史 1.1.4 Linux的优点 1.2 Linux与开源软件 1.3 Linux 与 Windows 的比较 1.3.1 开发模式和系统架构的区别 1.3.2 局部的区别 1.4 Linux 与 Unix的比较 1.5 Linux 的发行版本和内核版本 1.6 Linux 的适用场合 1.7 Linux 的未来 第二章 Linux系统基本原理 2.1 Linux的体系结构以图来表现 2.2 基本特点 2.2.1 单核心 2.2.2 多用户的操作系统 2.2.3 分时机制 2.2.4 多任务运行 2.3 核心与模块(模块分类、进程,核心结构图) 2.4 文件系统的基本概念 2.4.1 概述 2.4.2 Linux目录结构 2.4.3 mount 2.4.4 主要文件系统类型 2.4.5 日志文件系统 2.4.6 i结点 2.5 线程与进程的基本概念 2.5.1 基本概念 2.5.2 僵尸进程 2.5.3 进程和多任务的实现 2.6 Linux设备与网络 2.7 Shell控制台 第二部分 基础知识 第三章 Shell命令使用 3.1 控制台相关命令 clear 命令 echo 命令 yes 命令 3.2 目录操作命令 cd 命令 pwd 命令 mkdir 命令 rmdir 命令 3.3 文件操作命令 ls 命令 touch 命令 cat 命令 more 和 less 命令 head 和 tail 命令 rm 命令 cp 命令 mv 命令 ln 命令 find 命令 file 命令 grep 命令 wc 命令 sort 命令 3.4 属性与权限命令 chown 命令 chgrp 命令 chmod命令 3.5 系统相关命令 date 命令 nice 命令 ps 命令 who 命令 vmstat命令 top 命令 kill 命令 df和du 命令 reboot 命令 shutdown 命令 logout 命令 3.6 Shell的高级使用 3.6.1 管道和重定向(“|、>、>>、<”) 3.6.2 进程管理(fg/bg、ctrl-Z、 &、nohup) 3.6.3 模式匹配 3.6.4 特殊字符 3.7 环境变量 3.7.1 环境变量的概念 3.7.2 相关的命令 第四章 vi使用 4.1 vi 编辑器简介 4.1.1 vi的简介 4.1.2 vim简介 4.2 打开和退出 vi 4.2.1 进入vi 4.2.2 vi的退出 4.2.3 打开文件、保存文件和退出 vi 编辑器 4.3 vi 的三种模式 4.3.1 vi 的输入模式(Insert mode) 4.3.2 vi 的命令模式(Command mode) 4.3.3 vi 的底线模式(Last line mode) 4.3.4 vi 三种模式的切换 4.4 在文件中快速移动光标 4.4.1 基本的移动方式 4.4.2 在同一行中移动光标 4.4.3 在页面间移动光标 4.4.4 在底线模式下移动光标 4.4.5 查找字符或者文字 4.5 在文件中替换和删除文本 4.5.1 命令模式中的替换命令 4.5.2 在底线模式中的替换命令 4.5.3 底线模式中的删除方式 4.6 撤销和重复编辑命令 4.7 移动和复制文本 4.7.1 文本行的移动 4.7.2 在底线模式中的整行移动 4.7.3 粘贴和复制 4.8 在 vi 编辑器中与 shell交互 4.9 编辑多个文件 4.10 vi的定制 第五章 shell编程 5.1 变量和运算符 5.1.1 变量替换 5.1.2 位置变量 5.1.3 进程变量 5.1.4 bash 引号规则 5.1.5 运算符 5.1.6 表达式替换 5.1.7 标准shell变量 5.1.8 影响命令的变量 5.2 过程 5.2.1 在过程内部使用变量 5.2.2 shift 命令 5.2.3 建立局部过程变量 5.2.4 过程返回值 5.3 脚本执行命令 5.3.1 exit 命令 5.3.2 trap命令 5.3.3 if 命令 5.3.4 case 命令 5.3.5 for 语句 5.3.6 while命令 5.3.7 until命令 5.3.8 break 命令 5.3.9 continue 命令 5 .4 控制shell 5.4.1 创建命令表 5.4.2 创建复合命令 5.4.3 输入/输出重定向 5.4.4 读取输入 5.4.5 使用“-”文件 5.4.6 使用设备文件 5.4.7 使用exec 5.4.8 使用eval 5.4.9 使用后台进程 5.5 Shell 程序调试 5.6 Shell 脚本的举例 第六章 高级脚本编程 6.1 awk 的介绍 6.1.1 什么是awk? (语法与操作) 6.1.2 使用awk功能 6.2 sed 的介绍 6.2.1 什么是sed? (语法与操作) 6.2.2 使用sed功能 6.3 正则表达式的使用 6.4 使用perl 6.4.1 perl特性 6.4.2 perl 入门 6.4.3 perl 变量 6.4.4 使用静态信息 6.4.5 使用倒引号字符串 6.4.6 使用语句 6.4.7 使用文件 6.4.8 特殊变量 6.4.9 对象 6.4.10 使用模块 6.4.11 perl 脚本举例 第三部分 系统管理 第七章 Linux管理介绍 7.1 系统管理员职责 7.1.1 一般的职责 7.1.2 用户的支持 7.2 超级用户 7.2.1 su命令 7.2.2 日常管理 7.3 文档 7.3.1 Linux相关书籍 7.3.2 Internet 7.3.3 man 7.3.4 info 7.3.5 应用程序自带的文档 7.3.6 how-to和mini-how-to 第八章 用户管理 8.1 用户管理简介 8.2 用户类型 8.2.1 超级用户 8.2.2 普通用户 8.2.3 特殊用户 8.3 账号配置文件 8.3.1 /etc/passwd 文件 8.3.2 /etc/shadow 文件 8.3.3 /etc/group 文件 8.4 用户的创建与维护 8.4.1 添加用户 8.4.2 修改用户属性 8.4.3 禁用用户 8.4.4 删除用户 8.4.5 改变用户属主和所有权 8.4.6 用户身份转换 8.5 组的创建与维护 8.5.1 添加组 8.5.2 删除组 8.5.3 修改组属性 8.5.4 改变用户组和所有权 8.6 用户查询 8.6.1 who和w命令 8.6.2 finger 命令 8.6.3 id 命令 8.7 用户管理与维护 8.7.1 受限root访问 8.7.2 环境文件 8.7.3 环境的定义 8.7.4 umask 8.7.5 day信息 8.7.6 guest帐号 8.7.7 共享的组目录 第九章 进程管理 9.1 创建进程和启动进程 9.2 进程调度: crond与atd 9.3 进程监控与统计 9.4 信号 9.4.1 信号的概念 9.4.2 kill 9.4.3 进程的挂起和恢复 9.5 daemon 9.5.1 概念 9.5.2 创建daemon 9.5.3 daemon用法 9.5.4 识别 第十章 文件系统 10.1 分区管理 10.1.1 分区概念 10.1.2 fdisk与parted命令 10.2 文件系统创建与维护 10.3 磁盘限额 10.4 文件和目录 10.4.1 访问控制 10.4.2 设定用户和组识别码 10.4.3 粘着位 10.4.4 文件权限命令 10.4.5 连接(LINK) 10.5 proc文件系统 10.6 SWAP 10.7 NFS 10.8 RAID 10.9 LVM 第十一章 文件与数据备份 11.1 为什么要备份? 11.2 备份什么? 11.3 备份策略 11.4 备份命令的选择 11.4.1 tar 的使用 11.4.2 gzip和compress 11.4.3 联合使用 11.4.4 cpio 命令 11.4.5 dump 命令 11.5 第三方备份软件 11.6 磁带机的介绍及使用 第十二章 软件包管理 12.1 rpm 基础 12.2 rpm 主要运行方式和常用选项 12.3 查找 rpm 信息 12.4 rpm 包的安装与删除 12.5 rpm 包的升级 12.6 rpm 命令的用法 12.7 使用rpmbuild构建自己的rpm包 12.8 软件的编译安装(./configure、make、make install等过程) 12.9 共享库 第十三章 启动过程和启动脚本 13.1 理解系统启动过程 13.2 GRUB与LILO 13.3 启动配置文件和命令 13.4 rc目录和相关脚本 13.4.1 理解 rc.d 目录 13.4.2 /etc/rc.d/rc.svsinit 脚本 13.4.3 理解 rc 脚本 13.4.4 理解 rc.6 目录下的其他脚本 13.4.5 checkconfig 脚本 第十四章 linux内核及设备管理 14.1 编译内核 14.1.1 准备源码 14.1.2 配置内核 14.1.3 编译 14.1.4 安装 14.2 模块 14.2.1 编译和安装 14.2.2 模块操作命令 14.2.3 配置 14.3 内核的调整 第十五章 日志管理 15.1 基本概述 15.2 日志子系统类别 15.3 日志文件使用 15.3.1 dmesg 15.3.2 messages 15.4 日志文件的后台进程 15.4.1 syslog 15.4.2 klogd 15.4.3 logger 15.5 logrotate 15.6 log文件的分析工具 15.6.1 swatch 15.6.2 其他工具 第十六章 打印管理 16.1 Linux打印体系概述 16.1.1 Linux打印原理 16.1.2 新旧打印方式对比 16.2 打印机的设置 16.2.1 添加打印机 16.2.2 通过命令行管理打印机 16.2.3 通过web界面管理打印机 16.3 使用CUPS打印 16.3.1 打印文件 16.3.2 选择打印机 16.3.3 标准打印选项 第十七章 基本网络配置与管理 17.1 网络环境概述 17.1.1 使用ADSL连接 17.1.2 普通modem拨号 17.1.3 局域网连接 17.2 网卡设置(着重) 17.2.1 网络设置的相关文件 17.2.2 IP、掩码、静态路由 17.2.3 DNS选项的配置 17.3 常用网络管理命令(ifconfig、netstat和route命令) (着重) 17.4 常用服务的管理 17.4.1 xinetd与inetd(重点为xinetd) 17.4.2 DHCP配置及启动 17.4.3 telnet配置及启动 17.4.4 FTP配置及启动 17.4.5 SSH配置及启动 第十八章 系统安全简介 18.1 安全漏洞 18.2 补丁在系统安全中的重要作用 18.3 主机安全 18.4 PAM 18.5 用户设置:口令规则、过期等 18.6 文件权限 18.7 setuid和setgid 18.8 缓冲区溢出的安全保护 18.9 网络安全设置 18.9.1 TCP封装 18.9.2 端口限制 18.9.3 防火墙iptables 18.10 简单攻击检测 18.11 使用安全工具 18.11.1 saint 18.11.2 SSH 18.11.3 tcplogd 18.11.4 swatch 18.11.5 tcpdump 18.11.6 whois 第十九章 系统优化和核心参数调整 19.1 系统性能与优化概述 19.2 性能监视与测试 19.3 系统优化的相关命令 19.3.1 uptime 19.3.2 free 19.3.3 top 19.3.4 vmstat 19.3.5 ps 19.4 系统优化措施 第二十章 X Window配置 20.1 X Window有什么特点 20.2 组成X的基本元素 20.3 X系统的运行原理 20.4 X系统的启动与关闭 20.5 X系统的配置与升级 20.6 X Window的远程管理 20.7 X Window的桌面环境 附录 一、 vi命令汇总表 二、 常用命令列表(描述)可以加入DOS参照 三、 Linux 的技术资源(获取途径、以网上链接为主、Linux社区分类介绍) 四、 GNU通用公共许可证(GPL) 五、 Linux发行版 六、 index(关键词索引)
Kindle 修砖教程汇总 (内有多篇教程) http://bbs.duokan.com/forum/thread-64038-1-1.html 深入了解之: 《修砖的原理》 Kindle是一个Linux设备, 支持网络连接。原理上和一台linux电脑一样。 Kindle的MMC Flash有4个分区: main, diags, var, usb。 在图形界面上,用usb导出u盘,只能见到第4个分区。 机器变砖,一般是main或者var文件错误,可以刷镜像恢复。 我们采用fastboot模式修砖。原理是,让Kindle进入刷机模式, 这时候kindle屏幕上是不变化的,也不导出USB磁盘。 kindle这时候是一个fastboot设备,我们在PC上用fastboot.exe给kindle刷机。 Kindle有三种启动模式: fastboot 刷机模式(屏幕无反应); diags 诊断模式(屏幕文字菜单); main 正常模式(图形界面,可看书)。 以KT为例: 刷机的全过程,就是一个状态变化的过程: magic key (按住kindle操作) ->HID-Compliant(PC下 mfgTool 操作) -> fastboot (PC下命令行操作) -> diags (文字菜单) -> main (Kindle图形界面) 修砖就是刷镜像。 版本刷匹配了就OK。 下面总结了一些命令行。刷 main kernel的命令行见 第(3)。 具体步骤见 修砖教程汇总里的 KT小白修砖贴。 fastboot.exe的命令格式为: fastboot.exe flash [目标分区] [镜像文件名] 意思就是把 文件 刷入到 目标分区, flash即是刷入。 目标分区有 diags(调试分区), diags_kernel (调试分区kernel), kernel (主分区kernel)等。 在fastboot模式下刷机 (1)刷 diags分区 镜像: fastboot.exe flash diags mmcblk0p2_ssh-kt500.img (2)刷 diags分区 kernel, 也就是 diags_kernel : fastboot.exe flash diags_kernel kt_5.0.0_diags_kernel.img (3) 刷主分区 main_kernel, 也就是kernel: fastboot.exe flash kernel kernel_5.0.0.img (4) 设置启动模式为diags fastboot.exe setvar bootmode diags (5)重启Kindle fastboot.exe reboot 重启进入diags模式,然后用dd命令行,恢复主分区 在诊断模式,文字菜单, 依次选择N)、U)、Z)、X), 打开USB NetWork, 开启SSH。这时候,Kindle和PC之间的连接,模拟为RNDIS网卡,可以从网络登录Kindle,从而用dd命令行,恢复主分区。 (第一次运行需要在Windows下安装RNDIS网卡驱动, Win7/Win7 x64微软自带驱动) (6)在SSH下(用putty登录), 刷主分区镜像 dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 这里的if 是input file, of是outputfile。 of是固定的分区名,/dev/mmcblk0p1是主分区。 (7)在SSH下(用putty登录), 清空第三个分区 umount /dev/mmcblk0p3 dd if=/dev/zero of=/dev/mmcblk0p3 (8)重启到正常模式 idme -d --bootmode main reboot -f

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lylhw13_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值