工具
- wpa_supplicant
- dhclient
找出网卡设备名称
使用以下命令获取WIFI网卡名称:
|
|
使用Linux也已经两年了,开始使用的是Ubuntu,后来各种折腾,换到了Archlinux,使用至今。在使用Archlinux过程中,各种折腾各种配置,各种快捷键,终于把Archlinux折腾成了自己觉得很好看,很好用的样子。但是问题就是,如果哪天我想重装我的Arch,我还得从头一个命令一个命令敲一遍。还得重新改各种配置,重新装各种常用的软件。虽然说从头敲一遍命令可以学到很多东西,但那是对于第一次装的时候。如果以后每次重装都重新敲一遍,岂不是很蠢,很浪费时间。所以呢,我就使用bash配合dialog工具,写了这个伪界面版本的Archlinux安装器。
Archlinux-Installer on the GitHub
以下是这个安装器的一些特性:
今天在弄MATLAB
命令行的过程中,了解到了有这么个东西的存在。那什么是Readline
呢?
准确的说应该是GNU Readline
。在Linux的世界中,命令行界面是无处不在。很多应用程序都提供了自己的交互式命令行界面,也就是说需要用户敲入命令/数据,然后应用程序给出结果。我们需要手动敲入命令,输入即编辑。说到编辑,最简单的方式就是手动输入,如果有错误,就用退格键删除,重新输入。那么问题来了,我想自动补全怎么整?我想快速输入以前输入过的命令怎么整?我想搜索输入历史怎么整?…。GNU Readline
就是干这个的。
GNU Readline
是一个库,其通过命令行界面(如Bash)为交互式程序提供行编辑和历史功能。其实GNU Readline
就相当于一个变相的、迷你的编辑器。
面向对象中,系统功能都是通过一系列对象之间的协作完成的。为了降低系统的复杂度,增加代码的复用性,方便测试。应该尽量降低类与类之间的关联度,降低耦合度。类与类之间的关联很多时候是不可避免的。如上图,如果A依赖于B,那么A中的b对象应该怎么实例化呢?两种方法:
Spring
框架就是这么干的。但Spring
框架是通过Bean
配置来表达传入的参数的,如上图。Spring
中的依赖注入有两种实现方法。即:
Spring Bean
配置中的Scope
属性用于告诉Ioc容器
创建Bean
对象的范围,只能创建一个对象还是能够创建任意个对象。其值可以是singleton
、prototype
、request
、session
和global-session
。request
、session
和global-session
只有在web应用中才有效。这里只讲prototype
和singleton
。
singleton | prototype |
---|---|
只能创建一个Bean实例,Ioc容器会对创建的实例进行缓存,下次请求创建时,返回缓存的实例 | 可以创建任意个实例 |
默认值 | 非默认值 |
解压下载的框架,选择Use Library
,从解压的文件夹的libs
子文件夹选择需要的模块(也可以选择Download
等待IDEA
下载)
BIOS是启动在实模式下的,但是实模式限制比较多,所以接下来需要切换到保护模式。而且,接下来的操作系统可不能全部用汇编来写,那会累死的,需要用点稍微高级点的语言,那就是C语言。接下来需要做的就是切换到保护模式,并连接C语言。
先把之前的hello_world.asm
修改为boot_loader.asm
,然后进行修改。
我们的bootloader
放在了第一个扇区。后面的代码需要放到后面的扇区,因为第一扇区空间有限。但系统
启动的时候BIOS只会读入软盘的第一个扇区,也就是bootloader
到0x7c00
。后面的扇区BIOS是不会自己读入的,所以需要我们自己读入后续扇区到内存。
要写一个操作系统,应该从哪里开始呢?当然是启动。那么就先写一个简单的bootloader,让它能在启动的时候打印简单的字符串。
那么,用啥写呢?当然是汇编语言。
要在启动的时候打印字符串,就得依赖于BIOS。BIOS是工作在实模式下的,所以我们写的汇编应该是16位汇编。
[BITS 16]
用来告诉汇编器这是16位代码。因为该部分代码(第一扇区)在启动时会被读到内存的0x7c00
处。[ORG 0x7c00]
就是用来告诉汇编器,这部分代码将会被读取到内存0x7c00
处。所以汇编器在将代码翻译成机器码,计算地址时就会按照0x7c00
来进行计算。只有这样,接下来的代码才会正确执行。