Linux

============================================================================================
物理内存采用一级数组的形式,数据结构为mem_map;虚拟内存采用多级数组的页表形式,用户进程的虚拟地址空间的数据结构为mm_struct.mm_struct通过页表可以对应到mem_map中的页桢,从页得到物理地址。
虚拟内存把主存作为磁盘的高速缓存,在主存和磁盘之间根据需要来回传送数据
CPU只直接和寄存器和高速缓存打交道
 对于CPU来说,它的目标存储器是物理内存,使用高速缓存做物理内存的缓存
同样,对于虚拟内存来说,它的目标存储器是磁盘空间,使用物理内存做磁盘的缓存
 
页表(PT)数据结构,每个进程都有一个,用来表示虚拟页与物理页的映射,每个元素是个PTE页表项,
缺页中断是由MMU将VA地址转PA地址时缺页触发的
MMU有个TLB缓存PTE
内核存放页表,task,area,内核栈等数据结构
进程上下文切换需要切换页表
主存和磁盘交换数据时以块为基本单位
寻道时间 + 旋转延迟 + 传输时间
寻道时间:1ms的时间来启动磁头。10ms的时间来经过所有的磁道,所以寻道时间在 0 - 10ms,平均5ms
旋转延迟:60/7200
传输时间相对很小,在毫秒以下
内存和磁盘交换数据采用了内存的缓冲区来加速磁盘的访问速度,内存缓冲区由缓存块组成,缓存块的大小和磁盘块的大小是一样的,buffer_head数据结构表示内存缓冲与磁盘块之间的映射。
交换区swap来存放从内存中交换出来的页,和操作系统页回收子系统相关,与内存缓冲区无关
文件系统说白了就是文件内容和存储系统对应的块的映射关系,
文件系统四个重要对象:超级块(代表一个具体的文件系统),inode(代表一个文件),目录项,打开文件
单个块只能记录属于一个文件的内容
打开文件对象没有实际对应的磁盘数据
MBR+文件系统1(块组0(超级块+)+块组1+...)+文件系统2()+...
随机IO/连续IO:本次读的起始位置与上次读取的结束位置是否连续。
人脑、程序关系:每个程序都是现实中的或精神中的某个过程的一个模型,通过人脑孵化出来的。
计算机程序的构造和解释:www-mitpress.mit.edu/sicp
谓词==逻辑表达式或关系表达式(即值为真或假的表达式)
约束变量:被作用域约束
网络优化手段无外乎:缓存、预取、压缩、并行
顶级域名注册机构ICANN,CNNIC等不直接接受用户注册,而是给一些注册商,比如国内的虎翼网,万网,新网等,国外的Godaddy,name.com,namecheap.com
函数式编程有一个概念,叫做 柯里化 (currying),意思是将多参数的函数转换成单参数的形式
循环可以用递归代替,而一旦使用递归,就最好使用尾递归

============================================================================================
Shell
[]其实是test命令的别名,所以[]中的输写格式规范与test命令相同
shell下测试条件有三种:test和[]以及(())
test与[]等价,测试对象有三种字符串,数字,文件,[]中变量和常量最好用双引号包括

============================================================================================
每个硬件设备都需要驱动和管理程序,CPU也不例外,进程调度程序就算是CPU的管理程序,用来负责分配和管理CPU资源。进程调度两类资源:进程(或线程)和中断,可根据进程状态分类可运行态,阻塞态,挂起态等,每种状态内核都维护个队列,调度程序就从可运行队列里一个一个取出运行。
进程数据结构task_struct:
进程状态
进程调度信息和调度策略
进程标识符,用户,组标识符
进程通信有关信息
进程的父,子,兄弟,相关进程链接
时间和定时器信息:每个时钟滴答,也就是每次时钟中断,内核都会更新当前进程的CPU的时间信息
文件系统信息:fs_struct和files_struct
虚拟内存信息:mm_struct描述虚拟内存空间
页面管理信息:记录物理内存不足页面换入换出信息
内核栈信息:thread_union{thread_info,stack[SIZE]}

内存缓冲区(文件缓冲区)是从硬盘中预取出来做的缓存,一般linux中free命令中的可用内存很少,就是因为有大量缓存。
随机IO时间8ms,顺序IO时间是200ns,访存时间是10ns,1000ms/8ms=125表示随机IO每秒125次。

============================================================================================
文件权限三种实现:传统权限、selinux、acl
============================================================================================
1、 ssh免密码登录: ssh-keygen -t rsa
2、 linux拔号命令:
     设置账户:sudo pppoeconf
     连接 ADSL : sudo pon dsl-provider
     断开 ADSL: sudo poff
     查看 ADSL 状态: plog
3、安装bochs-debug
 export LDFLAGS='-lpthread'; ./configure --with-x11 --enable-debugger --enable-disasm --enable-long-phy-address

4、ubuntu x86_64安装32lib和32gcc
sudo apt-get install libc6-dev-i386
sudo apt-get install  gcc-multilib
5、修改DM
/etc/X11/default-display-manager
6、创建ubuntu桌面快捷方式
sudo apt-get install gnome-panel
sudo gnome-desktop-item-edit /usr/share/applications/ --create-new
7、把rpm转换成deb
sudo apt-get install alien  && sudo alien -k --scripts sqldeveloper*.rpm
8、dmenu快捷启动程序, 在系统key shotcuts里设置调用此程序的快捷键alt+p
============================================================================================
VIM
"u"命令和CTRL-R来撤消和重做
"J"删除本行回车符
CTRL-]和CTRL-o跳转和返回
w和b按word移动光标向前或向后
行内单字符搜索: f/F单字符
括号匹配%
跳到中间50%百分之五十
"H"意为Home, "M"为Middle, "L"为Last
当前位置信息CTRL-G
显示当前光标位置:set ruler
:set ignorecase搜索忽略大小写
:set hlsearch高亮显示搜索结果
:set nowrapscan搜索到文件结果不存在从文件头继续搜索
:set autoindent自动缩进
:set history=50冒号命令和搜索命令的命令历史列表的长度
set showmode/set showcmd
CTRL-I和CTRL-o光标历史记录跳转
"V"或"CTRL-V"进入Visual模式
dd删除行dw删除词
w下一个词首,e下一个词尾
r/R替换命令
:syntax enable语法高亮
:edit/:next/:previous/:args
:split/CTRL-W w

切换窗口 CTRL-W w或者h,j,k,l
打开窗口管理器:F8

============================================================================================
tmux
抽象出三个层级的概念:session,windows,pane

创建session: tmux new -s sessionname
detaching session: PREFIX d
显示session列表: tmux ls
attach session:tmux attach -t sessionname
退出session:tmux kill-session -t sessionname
创建session并指定windows的名字:tmux new -s sessionname -n windowsname
创建window:PREFIX c
命名window:PREFIX ,
切换windows: PREFIX[0-9]
查找windows: PREFIX f
显示windows列表:PREFIX w
close windows:PREFIX &
command mode:PREFIX :
创建window:new-window -n windowname
创建window并启进程:new-window -n windowname "top"

快捷键帮助列表: PREFIX ?


PREFIX default value is ctrl-b


split window: PREFIX |, PREFIX -
select pane: PREFIX h,j,k,l
resize pane: PREFIX H,J,K,L
瞬间显示pane序列号: PREFIX q
select pane by number: PREFIX q number
copy mode:PREFIX [ or PREFIX Esc
copy mode--move cursor: h,j,k,l
copy mode--search: /,?  search next:n,N
copy mode--copy: 1. start copy mode: PREFIX Esc
                                   2. start visual mode: v
                                  3. select : h,j,k,l
                                  4. copy(yanked):y
                                  5.past:PREFIX p
copy from buffer to sys clipboard: PREFIX c
 past from sys clipboard to buffer: PREFIX v


============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================

============================================================================================
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值