Cent-Linux腾讯课堂学习笔记】的更多相关文章

RedHat yum系统下 防火墙 关闭防火墙方法 systemctl stop firewalld 检测防火墙状态 systemctl status firewalld 设置防火墙禁用开机启动 systemctl disable firewalld SELinux 禁用SELinux setenforce 0 获取SELinux状态 getenforce 永久禁用 vi/vim /etc/sysconfig/selinux 设置分区开机自动挂载 vi/vim /etc/fstab 此文件存储开…
FPGA-VHDL课堂学习笔记 记录说明:本文档主要记录大学期间,老师FPGA授课课堂笔记. 代码语言:VHDL 编程软件:MAX+plus II FPGA硬件:FLE-843 03月05日  理论课 wo先唠点: FPGA硬件中有百万个逻辑门,我们可以通过编程将各种门组合连接,并将编程下载到FPGA中,以实现设计功能. 编程分为文本编辑和图行编辑,图形编辑就是通过数电逻辑原理图,进行逻辑门间的线路连接.而文本编辑,是通过描 述性代码,将设计者想要实现的功能转换成机器语言,使得FPGA根据机器语…
Linux帮助命令简单学习笔记: 一: 命令名称:man 命令英文原意:manual 命令所在路径:/usr/bin/man 执行权限:所有用户 语法:man [命令或配置文件] 功能描述:获得帮助信息 范例: $ man ls 查看ls命令的帮助信息 $ man services 查看配置文件services的帮助信息 man 1 默认命令 5配置文件 二: 指令名称:info 指令英文原义:information 指令所在路径:/usr/bin/info 执行权限:All User 语法:i…
本学习笔记基于:网易云课堂-linux课堂 课时1Centos 6.4安装讲解46:14 课时2Centos 6.4桌面环境介绍与网络连接04:30 课时3 Linux目录结构介绍及内核与shell分析37:19 课时4 Linux获得帮助_网络配置_合理关机64:23 课时5 Linux文件权限详解45:47 课时6Linux文件权限详解45:47 课时7目录显示个性操作与全局环境变量的使用与注意···43:25 课时8复制与远程复制_文件查找实例_文件内容查看的··57:49 课时9Linu…
一.目录说明 1.1 bin 一般用户,可执行的系统内置命令 1.2 sbin 系统管理员,可执行的系统内置命令 1.3 boot 启动文件目录,启动有关的文件都保存在此 1.4 dev 设备管理文件,如移动硬盘.U盘.光驱等 1.5 home 用户主目录,一般情况下:一个用户都会有相对应的文件夹,以用户名称命名 1.6 lib 动态链接库共享库,类型windows的.dll文件库 其设计目的在于共享.重用部分组件,提高程序开发效率等 若依赖于太多库,也会有弊端,如安装时提示各种组件缺失等(像w…
异常控制流 异常控制流(ECF)发生在计算机系统的各个层次 在硬件层,硬件检测到的事件会触发控制突然转移到异常处理程序. 在操作系统层,内核通过上下文转换将控制从一个用户进程转移到另一个用户进程. 在应用层,一个进程可以发送信号到另一个进程,而接收者会将控制突然转移到它的一个信号处理程序. ECF是操作系统用来实现I/O.进程和虚拟存储器的基本机制. 应用程序通过使用陷阱(trap)或者系统调用的ECF形式,向操作系统请求服务. ECF是计算机系统中实现并发的基本机制. 异常 异常就是控制流中的…
虚拟存储器 虚拟存储器是硬件异常.硬件地址翻译.主存.磁盘文件和内核软件的完美交互. 虚拟存储器的特点: 中心的 强大的 危险的 物理和虚拟寻址 计算机系统的主存被组织成一个由M个连续的字节大小的单元组成的数据 每个字节都有一个唯一的物理地址 第一个字节的地址为0,接下来的抵制依次+1 这种方式称为物理寻址 虚拟寻址时,CPU通过生成一个虚拟地址来访问主存,该地址被送到存储器之前先转换成适当的物理地址.该任务叫做地址翻译. 地址需要CPU硬件和操作系统之间紧密合作 存储器管理单元(在CPU上)利…
最近在鼓捣lnux字符设备驱动,在网上搜集的各种关于linux设备驱动的代码和注释,要么是针对2.4的,要么是错误百出,根本就不能运行成功,真希望大家在发博客的时候能认真核对下代码的正确性,特别是要把代码的运行环境和依赖条件列举出来,否则会对读者造成很大的误解. 以下代码的运行环境为: 操作系统:debian 6 内核版本:2.6.32(amd 64) gcc版本:4.4.5 源代码如下所示(源代码确保编译可通过,运行无bug): #include<linux/module.h> #inclu…
第十八章 调试 内核级开发的调试工作远比用户级开发艰难,它带来的风险比用户级别更高. 一.准备开始 1. 准备工作需要: 一个bug 一个藏匿bug的内核版本 相关内核代码的知识和运气 2. 在用户级程序中bug常常表现得清晰(执行foo就会让程序立即产生核心信息转储)但是内核中的bug表现得不像用户级程序中那么清晰.因为内核.用户以及硬件之间的交互很微妙. 3. 调试的主要思想是让bug重现,但是在内核中这并不是很容易做到的.因此,在跟踪bug的时候,掌握的信息越多越好. 二.内核中的bug…
---恢复内容开始--- 第五章 系统调用 一.与内核通信 1.系统调用在用户控件进程和硬件设备之间添加了一个中间层. 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都运行在虚拟系统中,而在用户控件和系统的其余部分提供这样一层公共接口 2.作用 在Linux中,系统调用是用户空间访问内核的唯一手段 . 二.API.POSIX和C库 Linux的系统调用作为C库的一部分提供.C库:Unix系统的主要API,包括标准C库函数和系统调用接口,即POSIXdM大部分API.…
想进行Linux系统开发已经很久了,一直没有付诸实践.今日终于开始学习Linux下的C语言编程,研究一天,终于大概弄明白了Linux系统进程管理的一些基本概念和编程方法,总结下来以方便大家学习和自己实践. 进程系统 Linux是个多任务多用户的操作系统,系统直接管理的每个任务的最小单位,就是进程(process).每个进程都有一个惟一的标识符pid,不同的进程pid不相同,在Shell下输入ps -A,可以显示当前的所有进程.一个进程不代表一个应用程序(application),因为一个应用程序…
Vim/Vi是一个功能强大的全屏幕文本编辑器,是Linux/UNIX上最常用的文本编辑器,它的作用是建立.编辑.显示文本文件.Vim/Vi 没有菜单,只有命令. 早前也用过Vim变过C++/C的代码,后来一不用,命令全都忘了,本来就没记多少.这里给出基本的一些操作指令,算是方便以后查看吧.本人是小白.......处于学习阶段.大神勿喷..... 主要的就是vim的三种工作模式: 插入命令: a 在光标后附加文本 A 在本行行末附加文本 i 在光标前插入文本 I 在本行开始插入文本 o 在光标下插…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的是linux内核中的进程调度,之前我们在操作系统中有讲解进程调度的分类,以及一些调度算法.而linux中的进程调度有所不同,首先老师讲解了进程调度和进程调度的时机,所有的用户态进程都只能被调度,而内核线程可以主动调度,而进程调度的实现都是通过schedule函数,然后讲解了进程上下文所包含的信息,然后讲解了切换寄存器状态…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 本周学习的内容主要是讨论可执行文件,最开始讲解了可执行文件是怎么得来的,也就是上个学期娄老师教我们的四步,预处理,编译成汇编指令,变成二进制代码,最后执行可执行文件.然后讲解了可执行文件的演变,从最开始的a.out文件,演变成ELF文件,然后讲解了如何装载可执行文件.也就是这周的实验内容,先用test_execv.c覆盖tect.…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 按照刘老师的周从三个角度讲述这个星期的学习内容.第一个角度知道自己在干什么,这周主要内容就是在menu菜单中添加两个自己的功能,也就是上周我们编辑的两个函数,如何实现就是在test.c也就是make中编译的文件中添加两个函数,然后就进行编译,实现了功能,然后进行gdb调试,可以看出这个代码的变化情况.第二个角度,为什么做这个,知道…
赵瀚青原创作品转载请注明出处<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 概述 这周主要讲解的是进程.首先老师就讲解了PCB进程结构块的数据结构,PCB进程控制块的代码包含了很多信息,最开始就是进程的状态信息 ,然后是进程状态符,进程调度相关信息等等很多部分.然后老师讲解了用fork()创建进程的过程,然后用gdb调试,跟踪创建进程的过程. 本周学习的内容在上个学期娄老师的课程中有涉及,所以难度不是非常大,但…
mkdir -p [目录]创建目录-p 递归创建ls 查看当前目录下的文件和目录等其他文件 cd [目录]命令英文愿意:change directory切换所在目录简化操作cd ~ 进入当前用户的家目录cdcd - 进入上次目录cd .. 进入上级目录cd . 进入当前目录 linux 的Tab键可以自动补全文件名称或命令名称 pwd查询所在目录位置命令英文愿意:print working directory rmdir [目录名]命令英文原意:remove empty directories作…
一.shell的基本概念:                               shell 意思是外壳,它是离用户最近的程序.shell提供用户操作系统的接口,我们通过shell将输入的命令与内核通信,使内核可以控制硬件来正确无误的工作.广义上的shell包含两类GUI和CLI. GUI:Gnome,KDE,Xface CLI:sh,csh,ksh,bash,tcsh,zsh(合法的shell要写入/etc/shells这个文件,系统某些服务在运行过程中,可能会去检查用户能够使用的she…
一.怎么查看系统上下文切换情况 通过前面学习我么你知道,过多的上下文切换,会把CPU时间消耗在寄存器.内核栈以及虚拟内存等数据的保存和回复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶 既然上下文切换对系统性能影响那么大,你肯定迫不及待想知道,道题怎么查看上下文切换 1.系统总的上下文切换情况 [root@nfs ~]# vmstat 1 procs -----------memory---------- ---swap-- -----io---- -system-- ------c…
一.内存的分配和回收 1.管理内存的过程中,也很容易发生各种各样的“事故”, 对应用程序来说,动态内存的分配和回收,是既核心又复杂的一的一个逻辑功能模块.管理内存的过程中,也很容易发生各种各样的“事故”, 比如,没正确回收分配后的内存,导致了泄漏.访问的是已分配内存边界外的地址,导致程序异常退出,等等. 你在程序中定义了一个局部变量,比如一个整数数组 int data[64] ,就定义了一个可以存储 64 个整数的内存段.由于这是一个局部变量,它会从内它会从内存空间的栈中分配内存 1.栈内存由系…
一.上节总结 专栏更新至今,四大基础模块的第三个模块——文件系统和磁盘 I/O 篇,我们就已经学完了.很开心你还没有掉队,仍然在积极学习思考和实践操作,并且热情地留言与讨论. 今天是性能优化的第四期.照例,我从 I/O 模块的留言中摘出了一些典型问题,作为今天的答疑内容,集中回复.同样的,为了便于你学习理解,它们并不是严格按照文章顺序排列的. 每个问题,我都附上了留言区提问的截屏.如果你需要回顾内容原文,可以扫描每个问题右下方的二维码查看. 二.问题 1:阻塞.非阻塞 I/O 与同步.异步 I/…
一.上节回顾 前几节,我们一起学习了文件系统和磁盘 I/O 的工作原理,以及相应的性能分析和优化方法.接下来,我们将进入下一个重要模块—— Linux 的网络子系统. 由于网络处理的流程最复杂,跟我们前面讲到的进程调度.中断处理.内存管理以及 I/O等都密不可分,所以,我把网络模块作为最后一个资源模块来讲解. 同 CPU.内存以及 I/O 一样,网络也是 Linux 系统最核心的功能.网络是一种把不同计算机或网络设备连接到一起的技术,它本质上是一种进程间通信方式,特别是跨系统的进程间通信,必须要…
一.上节回顾 上一节,我带你学习了 Linux 网络的基础原理.简单回顾一下,Linux 网络根据 TCP/IP模型,构建其网络协议栈.TCP/IP 模型由应用层.传输层.网络层.网络接口层等四层组成,这也是 Linux 网络栈最核心的构成部分. 应用程序通过套接字接口发送数据包时,先要在网络协议栈中从上到下逐层处理,然后才最终送到网卡发送出去:而接收数据包时,也要先经过网络栈从下到上的逐层处理,最后送到应用程序. 了解 Linux 网络的基本原理和收发流程后,你肯定迫不及待想知道,如何去观察网…
一.上节回顾 前面内容,我们学习了 Linux 网络的基础原理以及性能观测方法.简单回顾一下,Linux网络基于 TCP/IP 模型,构建了其网络协议栈,把繁杂的网络功能划分为应用层.传输层.网络层.网络接口层等四个不同的层次,既解决了网络环境中设备异构的问题,也解耦了网络协议的复杂性. 基于 TCP/IP 模型,我们还梳理了 Linux 网络收发流程和相应的性能指标.在应用程序通过套接字接口发送或者接收网络包时,这些网络包都要经过协议栈的逐层处理.我们通常用带宽.吞吐.延迟.PPS 等来衡量网…
一.上节总结回顾 上一节,我们回顾了经典的 C10K 和 C1000K 问题.简单回顾一下,C10K 是指如何单机同时处理 1 万个请求(并发连接 1 万)的问题,而 C1000K 则是单机支持处理 100 万个请求(并发连接 100 万)的问题. I/O 模型的优化,是解决 C10K 问题的最佳良方.Linux 2.6 中引入的 epoll,完美解决了C10K 的问题,并一直沿用至今.今天的很多高性能网络方案,仍都基于 epoll. 自然,随着互联网技术的普及,催生出更高的性能需求.从 C10…
一.上节回顾 上一节,我带你一起学习了网络性能的评估方法.简单回顾一下,Linux 网络基于 TCP/IP协议栈构建,而在协议栈的不同层,我们所关注的网络性能也不尽相同. 在应用层,我们关注的是应用程序的并发连接数.每秒请求数.处理延迟.错误数等,可以使用 wrk.Jmeter 等工具,模拟用户的负载,得到想要的测试结果. 而在传输层,我们关注的是 TCP.UDP 等传输层协议的工作状况,比如 TCP 连接数.TCP 重传.TCP 错误数等.此时,你可以使用 iperf.netperf 等,来测…
一.上节回顾 上一节,我们学习了 DNS 性能问题的分析和优化方法.简单回顾一下,DNS 可以提供域名和 IP 地址的映射关系,也是一种常用的全局负载均衡(GSLB)实现方法. 通常,需要暴露到公网的服务,都会绑定一个域名,既方便了人们记忆,也避免了后台服务 IP 地址的变更影响到用户. 不过要注意,DNS 解析受到各种网络状况的影响,性能可能不稳定.比如公网延迟增大,缓存过期导致要重新去上游服务器请求,或者流量高峰时 DNS 服务器性能不足等,都会导致 DNS 响应的延迟增大. 此时,可以借助…
一.上节回顾 上一节,我带你学习了 tcpdump 和 Wireshark 的使用方法,并通过几个案例,带你用这两个工具实际分析了网络的收发过程.碰到网络性能问题,不要忘记可以用 tcpdump 和Wireshark 这两个大杀器,抓取实际传输的网络包,排查潜在的性能问题. 今天,我们一起来看另外一个问题,怎么缓解 DDoS(Distributed Denial of Service)带来的性能下降问题. 二.DDoS 简介 1.DDoS 简介 DDoS 的前身是 DoS(Denail of S…
一.上节回顾 上一节,我们学习了碰到分布式拒绝服务(DDoS)的缓解方法.简单回顾一下,DDoS利用大量的伪造请求,导致目标服务要耗费大量资源,来处理这些无效请求,进而无法正常响应正常用户的请求. 由于 DDoS 的分布式.大流量.难追踪等特点,目前确实还没有方法,能够完全防御DDoS 带来的问题,我们只能设法缓解 DDoS 带来的影响. 比如,你可以购买专业的流量清洗设备和网络防火墙,在网络入口处阻断恶意流量,只保留正常流量进入数据中心的服务器. 在 Linux 服务器中,你可以通过内核调优.…
一.上节回顾 上一节,我们探究了网络延迟增大问题的分析方法,并通过一个案例,掌握了如何用hping3.tcpdump.Wireshark.strace 等工具,来排查和定位问题的根源. 简单回顾一下,网络延迟是最核心的网络性能指标.由于网络传输.网络包处理等各种因素的影响,网络延迟不可避免.但过大的网络延迟,会直接影响用户的体验. 所以,在发现网络延迟增大的情况后,你可以先从路由.网络包的收发.网络包的处理,再到应用程序等,从各个层级分析网络延迟,等到找出网络延迟的来源层级后,再深入定位瓶颈所在…