Linux内核编程知识集锦
1 |
git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
根据需要,切换分支。
1 |
apt install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison |
你也可以手工直接编辑.config文件。每个选项都可以设置以下值之一:
取值 | 说明 |
y | 将相应特性构建到内核中 |
n | 不包含此特性 |
m |
构建为模块,这样可以按需加载 注意:
|
Ubuntu下安装PHP
安装必要的软件:
1 |
sudo apt-get install php5-cgi |
修改配置:
注意:Web服务器下编写info.php可以获知php.ini位置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
vim /etc/php5/apache2/php.ini #根据需要修改以下内容: #最大上传文件的大小 upload_max_filesize = 20M #错误报告相关配置 error_reporting = E_ALL display_errors = On display_startup_errors = Off log_errors = On log_errors_max_len = 1024 error_log = /var/log/php_errors.log ignore_repeated_errors = Off report_memleaks = On track_errors = On |
安装必要的软件:
修改配置文件:
现在调试客户端可以连接并进行调试了,需要注意的是,服务器必须能够连接到调试客户端。在调试位于外网服务器的PHP页面时,处于内网的调试客户端可能无法被直接访问,这时候最简单的方式就是使用VPN连接到服务器,上面的xdebug.remote_host填写VPN…
阅读全文Ubuntu知识集锦
- PPA:Personal Package Archives,可以上传source,作为apt存储库
- APT:Advanced Packaging Tool,Debian GNU/Linux distribution及其变体上进行软件安装/更新/删除的工具,它简化了类linux系统的软件管理,可以进行二进制的安装或者源码编译的安装。最初是设计为pdkg的前…
GNU Make学习笔记
对于任何编译器可以通过Shell调用的编程语言,均可以通过GNU Make(以下称make)构建。make可以用于任何这样的任务:如果某些文件所依赖的文件发生了变化,则自动更新这些文件。
需要编写makefile文件来使用make,该文件中包含了文件之间的依赖关系、提供更新每个文件的命令,在makefile所在目录中运行make命令,即可完成文件更新,make会根据文件名GNUmakefile、makefile、Makefile依次寻找,可…
阅读全文Linux内核学习笔记(五)
内核的调试比用户级程序困难的多,并且风险高——内核中的一个错误可能导致系统立即崩溃。驾驭内核调试的能力很大程度上取决于经验和对内核的深刻理解。
内核提供的打印函数 printk() 与对应的C库函数功能几乎相同,但是它有一些特殊的特性:
printk()函数是个弹性极佳的函数,可以在中断上下文、进程上下文、持有任何锁时、…
阅读全文Linux文本编辑器
1 2 |
# 以窗口模式启动 emacs -nw |
C默认为Ctrl键,M默认为Alt键
快捷键 | 说明 |
基本 | |
C-x C-c | 退出 |
C-x C-f | 打开/新建文件 |
C-x C-s | 保存文件 |
C-x C-w | 另存为 |
C-g | 取消正在编辑的命令 |
C-` | 激活菜单,和我的环境冲突。修改为C-\ |
M-x | 输入命令 |
光标 | |
C-v M-v | 下一页 上一页 |
C-l | 当前行居中显示 |
C-b C-f… |
Linux内核学习笔记(四)
当Linux内核组件要读写一些数据时,并不是请求一发出,内核便立即执行该请求,而是将其推迟执行。当传输一个新数据块时,内核需要检查它能否通过。Linux IO调度程序是介于通用块层和块设备驱动程序之间,所…
阅读全文Linux内核学习笔记(三)
Linux使用虚拟内存技术。它是一种位于应用程序内存请求与内存管理单元(MMU,一般是集成于CPU的硬件)硬件之间的抽象层。虚拟内存计数有以下优势:
- 多个进程可以同时并发的运行,使用重复的虚拟内存地址
- 应用程序所需内存大于物理内存时也可以运行
- 程序代码中,只有部…
Linux内核学习笔记(二)
x86平台中,一个进程调用C库函数读取文件内容,其经历的处理步骤可能如下:
- 在用户空间,进程调用fread()库函数
- 库函数触发read()系统调用
- 0x80软中断被触发,CR0寄存器的PE位被置0,进入内核态
- read()系统调用对VFS层发起调用file_op…
Ubuntu下安装OpenSSH服务器和客户端
1 2 |
sudo apt-get install openssh-client sudo apt-get install openssh-server |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#监听端口 Port 22 #启用证书方式登录 PubkeyAuthentication yes #启用登录欢迎横幅 Banner /etc/issue.net # 允许root通过密码登录 PermitRootLogin yes #每隔60秒发送一次心跳给客户端 ClientAliveInterval 60 #如果连续5次心跳客户端没响应,则断开连接 ClientAliveCountMax 5 |
服务器可以发起保活心跳,客户端也可以:
要修改当前用户的默认SSH Key的位置,使用配置文件: