2025年linux内核驱动开发中使用的地址是(linux内核驱动开发工程师)

linux内核驱动开发中使用的地址是(linux内核驱动开发工程师)主要学习课程是韩顺平的 linux 课程 没有看完 但近期内应该不会再学了 上传笔记备忘 Linux 学习阶段 1 linux 各种命令 2 linux 各种配置 3 linux 下搭建开发环境 4 编写 shell 脚本 维护 linux 服务器 5 linux 服务器安全设置 防止攻击 6 linux 内核 学习工科有个特点 先 know how 再 know why 在实践中学习 而不是学会了再去做

大家好,我是讯享网,很高兴认识大家。



主要学习课程是韩顺平的linux课程,没有看完,但近期内应该不会再学了,上传笔记备忘。

Linux学习阶段:[1]linux各种命令[2]linux各种配置[3]linux下搭建开发环境[4]编写shell脚本、维护linux服务器[5]linux服务器安全设置,防止攻击[6]linux内核

学习工科有个特点:先know how,再know why;在实践中学习,而不是学会了再去做

Linux不擅长桌面,但擅长搭建服务器(免费开源、稳定高效);linux系统内核可以根据需要进行裁剪(可低至几百kB),适用于嵌入式领域,如机顶盒等智能硬件、物联网。

Ubuntu适合python开发

Linux版本与发行版(ubuntu/CentOS/Debian/Fedora…)的关系:linux指内核,在此内核的基础上不同的团队进行包装,开发了软件包和工具,形成了不同的发行版。

【1】安装linux,以安装ubuntu18.04双系统为例

下载rufus或其他启动盘制作工具,以制作驱动U盘

运行rufus,把驱动安装在U盘上,(会把U盘格式化,要求U盘8G以上大小)

电脑:设置-引导-启动项(或者开机时按bios),选择U盘EFI引导,打开ubuntu安装引导,按步骤进行。

之后重启。仍用bios启动,或设置-引导那个重启。若启动时遇到grub界面,可以尝试解决(我的解决不了),或者再次重启。

Windows Linux双系统的安装与卸载,链接https://zhuanlan.zhihu.com/p/

或者ubuntu20.04安装,链接https://blog.csdn.net/hwh295/article/details/

【2】Linux系统删除另外的windows

当拥有linux与windows双系统时,可以采用如下方法在linux下删除windows系统:

[1]打开磁盘程序,把windows系统部分的磁盘格式化(杀杀杀)

[2] Ubuntu 删除 Windows 启动项 - 知乎连接:

(1)命令sudo update-grub查看引导项,发现其中有windows;使用sudo efibootmgr命令查看引导项条目,删除windows对应条目,如使用命令sudo efibootmgr -b 1 -B可以删除条目Boot0001* Windows Boot Manager

(2)从EFI分区中删除相应文件夹,把目录/boot/efi/EFI下的windows文件夹(或许叫microsoft文件夹)删除

(3)使用命令sudo update-grub查看引导项中已没有windows

下载VMware 在:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html 仍需要下载ubuntu镜像源,但是不再用rufus制作驱动U盘了,详见:

虚拟机VMware安装ubuntu教程https://blog.csdn.net/weixin_/article/details/

注意点:

[1]给虚拟机分配的磁盘空间,后期不够用了可以扩展

[2]给虚拟机设置硬件配置时,内存、处理器不应该超过主机的配置;使用推荐配置即可

[3]虚拟机硬件配置的网络适配器设置:默认使用NAT模式;

共有三种模式:

(1)桥接模式:虚拟机和主机一样在同一个网段内使用不同的ip(如主机192.168.0.20,虚拟机192.168.0.30,而使用同一网络的另一个设备,比如另一台电脑B可能ip为192.168.0.50).虚拟机和主机一样可以和外部设备(如电脑B)互相通信,但是会占用该网段的ip地址(一个网段内最多250个ip,设备过多时此模式不适宜)

(2)NAT模式(网络地址转换):虚拟机创建一个新ip,如192.168.100.88,而主机上也会生成一个对应的新网卡,如192.168.100.99,主机新网卡和虚拟机之间形成一个独立的可以相互通信的网络。虚拟机ip通过代理访问外部网络。(此法不占用该网段ip,不造成ip冲突)

(3)主机模式:独立的系统,不和外部通信(?)

[4]在系统安装时,最小安装可能是不带界面的,也不带有gcc等工具。点击选择带有桌面的,以及一些需要安装的附加选项,如开发工具和兼容性程序库等。

[5]系统安装时,安装位置可以选择自动配置分区或自己配置分区:

Linux一般分为3个区:boot分区(引导分区),swap分区(交换区),根分区。其中boot区一般要1G,交换分区和分配内存大小一致(如2G),剩下的几十个G都归为根分区。

Swap分区作用:当内存已被应用程序占满时,swap分区临时充当作内存以使得可以同时加载更多程序。

[6]系统默认的挂载点在/boot,文件类型为ext4,期望容量1G;添加挂载点swap,期望容量为分区大小(如2G),文件类型swap;根(目录)分区挂载点为/,文件系统ext4,期望容量为剩下的几十G

[7]linux系统开机时默认使用普通的用户登录,权限较低;可以在此界面点击用户名输入root用户名和密码,以高权限的root用户登录(在你设置过root用户以后)

克隆方式:(1)直接拷贝安装好的虚拟机文件(2)使用vmware的克隆操作

克隆时需要关闭该linux系统

VMware快照管理:使系统回到原先的某一个状态

通过“虚拟机-管理-快照-拍摄快照”创建快照

vmtool方便我们在windows下更好地管理vm虚拟机,并允许我们设置主机和虚拟机的共享文件夹

安装vmtools要求虚拟机有gcc(在终端中输入gcc -v即可得知是否已安装gcc)

  点击vm菜单install vmware tools;虚拟机会出现vmtools.tar.gz安装包(一个光驱的图标,点开找到安装包);拷贝到根目录下的文件夹/opt;使用解压命令tar得到安装文件(命令tar -zxvf vmware.tar.gz);进入该vm解压文件目录找到该安装文件vmware-install.pl,执行该安装文件,终端中输入命令https://www.bilibili.com/read/ vmware-install.pl之后按Enter所有询问项都默认,都按Enter

  安装成功后vm点击虚拟机点击设置,在选项中点击共享文件夹,启用并添加,选择想要共享的主机文件夹。在虚拟机根目录中找到文件夹/mnt,打开即可找到设置的共享文件夹。

当linux在远程服务器时,共享文件夹通过网络传输文件,配置方式后边再说。

在linux系统中,一切都是文件

在根目录“/”下的树状文件目录,各个目录名称不得更改

root用户的文件(root用户主目录)在/root目录下;其他用户的文件在/home目录下,每个用户有一个自己的目录,以账号命名;(当使用命令useradd Mike添加一个名叫Mike的用户时,/home目录下就会创建出一个/Mike目录;可以再使用 userdel -r Mike删掉该用户目录)

/bin目录(binary)下是常用的指令(以及/usr/bin和/usr/local/bin);/sbin目录(super user binary)系统管理员的系统管理程序(以及/usr/sbin和/usr/local/sbin);

/etc目录下是配置文件、环境设置及子目录;

/dev目录是设备管理器(device),把所有硬件映射成文件来管理(比如/cpu目录下有8个文件夹);

/lib目录(library )是系统开机所需要最基本的动态连接共享库,类似于windows的dll文件,所有应用程序都需要用到这些共享库

/lost+found目录一般是空的,当系统非法关机后会存放一些文件


讯享网

/usr目录非常重要,类似windows的program files目录。用户安装的应用程序和文件默认放在此目录下

/boot存放linux的操作系统引导程序,如果文件损坏将无法启动系统

/proc是虚拟目录,是系统内存的映射,不要对其进行操作

/srv目录(service)存放服务启动后需要提取的数据,不要对其进行操作

/sys该目录下安装了linux2.6内核新出现的文件系统sysfs,不要对其进行操作

/tmp存放临时文件

/media目录,linux会自动识别U盘、光驱等设备,识别后系统会把这些设备挂载到此目录下

/mnt系统提供该目录,允许用户临时挂载其他文件系统,可以将外部存储挂载在该文件夹上(如虚拟机与主机的共享目录)

/opt目录是给主机额外安装软件所设置的目录,默认为空。之前的例子中vmtools安装在该目录下。大家一般约定在此文件夹中存放安装文件

/usr/local 一般是软件安装的目标目录

/var 存放着在不断扩充的东西,一般将经常被修改的目录放在这里,包括各种日志文件

/selinux目录(security-enhance linux)安全子系统,控制程序只能访问特定文件,类似于windows 360,有3种工作模式,可以自行设置;如果没有该目录,可能是未启用该功能

在项目中,linux可能是在远程服务器中假设在公网(拥有对外的公网ip以供访问)上。在本地通过使用工具Xshell远程登陆服务器上的linux或使用工具Xftp修改服务器上的文件。

非商用的Xshell和Xftp,可以使用free-for-home-school版本,在网站https://www.netsarang.com/en/free-for-home-school/ 下载(需要翻墙)

【1】Xshell是目前最该的远程登陆linux操作的软件,可以在windows界面下访问远端不同系统下的服务器,以达到远程控制终端的目的。但不能上传下载文件。

连接公网下的linux需要知道linux的ip,在终端中使用命令ifconfig可以得到ip。(提示:如果没有net-tools需要sudo apt install net-tools)(多说一句,你买的阿里或者腾讯的云服务器是有公网ip的,你自己的电脑估计是没有的,比如我在学校的宿舍里使用wifi,经查询我的电脑在7层内网下;如果搭建网站需要内网穿透,有专门的工具,但很复杂,不要考虑这个)并且该ip从你的本地主机是可以ping通的。

打开Xshell,新建链接,在主机ip中输入上边的ip,默认协议SSH,端口22(如果连接失败,可能是linux没有开启SSH服务,在终端里输入命令service ssh start,没有ssh服务要sudo apt-get install openssh-server)。双击该会话,输入linux系统的用户名和密码;就登入到linux的系统的任何文件并操作了,但是注意Xshell这里只有终端界面而没有图形界面。

【2】使用Xftp可以在windows和linux/Unix间传输文件

和Xshell一样新建一个链接,协议Sftp,端口仍然为22;点击会话,输入用户名、密码,连接。这时候该软件有两个工作区,左边为本地windows主机,右边为linux该用户的文件夹(如/home/Mike),可以在linux工作区上端的目录处更改目录换到不同文件夹;在windows工作区中右键想要传输的文件,点击传输,就会传输(复制)到linux当前的目录下(直接把文件拖过去也行吧)。

linux一般会内置文本编辑器vim。Vim可视作vi的增强版,有程序编辑的能力,并补充了代码编译和错误跳转的功能。

Vim的3种模式:

[1]正常模式(默认)

正常模式下不能写入内容。用vim打开某文档,可以使用“上下左右”按键移动光标,使用“删除字符”、“删除整行”、“复制”“粘贴”处理内容。

[2]插入模式(编辑模式)insert

正常模式下按i,I,o,O,a,A,r,R等任一字母后进入,一般按i ;注意r或R进入替换模式replace,输入内容时,r仅会取代光标当前所在字符一次,R会一直取代

[3]命令行模式

提供相关指令,完成读取、存盘、替换、离开、显示行号等操作

插入模式下点击esc返回正常模式,再按着shift输入冒号:或者斜杠/进入命令行模式。注意输入一条命令后即返回正常模式,再输入命令仍须输入冒号,否则可能进入插入模式。

在命令行中输入vim test.py即创建空白的test.py文件并用vim打开。输入i进入插入模式。输入python代码print(“hello world”);之后进入命令行模式。

在命令行模式下:输入wq写入并退出(w:write q:quit);输入q退出;输入q!强制退出(不保存);

一些其他快捷键:

(在正常模式下)

拷贝当前行yy   拷贝当前行向下的5行5yy   粘贴p

删除当前行dd   删除当前行向下的6行6dd

定位到文件最后一行G   定位到文件第一行gg

定位到文件第7行 先输入7再同时按shift和g

按键hjkl作用分别是光标左下上右移动  

30j或者30下按键可以使光标下移30行

撤销上一步操作u

(在命令行模式下)

在文件中查找某个单词  /关键词  回车查找,输入n显示下一个结果,点esc退出

设置文件的行号set nu   取消文件的行号set nonu

(使用Xshell控制远程服务器时,需要使用命令控制linux关机等操作。当然这些命令对本地的linux也有效,只不过可能没必要)

shutdown -h now立刻关机(h即halt停止)

shutdown -h 3在3min后关机;会给每个登陆的用户发消息“hello,3分钟后会关机了”

shutdown 默认为1min后关机

shutdown -r now 现在重启计算机(r即reboot重启)

halt 立即关机

reboot 立即重启

sync 把内存数据同步到磁盘

注意:不管是重启还是关机,都要把内存数据存入磁盘,否则内存数据将会丢失。虽然现在的shutdown/reboot/halt等命令均已在关机前进行了sync,但毕竟小心驶得万年船!

在用户登陆时,避免使用高权限的root账户登陆以防止误操作,如果需要高权限,可以先用普通用户登录再用su切换为管理员(su -用户名)。

Linux是多用户多任务的系统。任何要使用系统资源的使用者,都必须先向系统管理员(root)申请一个用户账号,然后以这个账号登入系统

【1】用户身份/用户切换

使用命令pwd会显示当前在哪个目录下(print working directory)(如pwd终端提示/home/mike)

使用命令id mike可以查看用户mike的信息。终端返回的信息中包括用户id,用户组id,用户组。

使用命令whoami(即为who am i)会告诉我现在我以什么用户名登陆;如果是Xshell远程登陆,还会返回我现在登陆的ip和登陆时间

可以使用logout注销(登出)用户。注意logout在图形运行级别下无效(在能看到图形界面的Linux下无效),在运行级别3下有效(比如没有图形界面的Xshell)。(在图形界面下,root下输入exit退出为普通用户;再输入exit退出终端)

比如:登录为普通用户Mike,再su 命令进入root用户;logout注销(登出)root用户又回到Mike用户了;再logout就退出系统了。

如果要切换用户,可以使用命令su tom即切换为tom;从权限高的用户切换到权限低的用户不需要密码,反之需要。

用户组可以对多个有共性的用户统一管理。我们可以给多个用户单独设置权限,也可以把他们拉到一个组里统一设权限。

进入root用户后,使用命令groupadd test1添加名为test1的组;

groupdel test1删除名为test1的组;

useradd -g group1 tom增加一个用户tom,指定添加到组group1;(需要提前创建好group1)

修改用户的组usermod -g group2 tom把用户tom移动到组group2里

如果创建用户时没有指定组,那么会自动生成一个和用户名同名的组并且把该用户放到该组里去。

【2】用户添加/删除

假设现在有普通用户Mike和管理员用户root;由root用户可以创建多个用户,比如Jack、Jerry、Mike等,每个用户都会有自己的密码,都会有自己的目录(自己的/home家目录)和自己的权限。当添加新用户如Jack时,系统会自动创建对应的家目录(会自动创建/home/Jack目录)

命令su进入root用户,再useradd mike即添加了新用户mike;也可以使用命令useradd -d指定顶新用户创建的家目录,比如useradd -d /home/test Alan 这样就创建了家目录在/home/test的新用户Alan

命令passwd mike给用户mike设置密码;如果不声明而仅用命令passwd的话就会给当前用户(root)设置密码

在root用户下,可以删除没用的用户。有两种情况:

【3】用户和组的相关文件

(1)/etc/passwd文件:用户的配置文件,记录用户的各种信息,每行都是一个用户

每行的含义:用户名;口令(是加密的,可能显示为x或者0);用户标识号;组标识号;注释性描述;主目录(用户的家目录);登陆shell(shell像是编译器,把我们的命令翻译后再发给linux的内核。一般用的是bash,也有tcsh或csh,其中sh即shell)

(2)/etc/shadow文件:口令配置文件,验证口令的地方

每行的含义:登陆名;加密口令;最后一次修改时间;最小时间间隔;最大时间间隔;警告时间;不活动时间;失效时间;标志  (后边的信息是以特殊方式加密或以特殊数字表示的,看不懂的)

(3)/etc/group文件,组(group)的配置文件,记录系统包含的组的信息

每行含义:组名;口令;组标识号;组内用户列表

【1】(一般在服务器等远程情况下会使用这些内容)共有7种运行级别:

0关机 ; 1单用户(可以找回丢失密码) ; 2多用户状态,没有网络服务(很少使用) ; 3多用户状态有网络服务(无图形界面,节省资源)(服务器,使用场景多) ; 4系统未使用保留给用户 ; 5图形界面(也是多用户的) ; 6系统重启

常用的运行级别是3和5

使用命令init切换运行级别,如在图形界面下使用命令init 3即进入运行级别3的无图形界面。输入init 6系统重启,和reboot效果相同

可以在系统文件中指定默认运行级别。本机的电脑默认运行级别是图形界面5。如在CentOs7系统中,/etc.inittab文件:

Multi-user.target: analogous to runlevel 3

Graphic.target: analogous to runlevel 5

并允许通过指令systemctl get-default查看当前运行级别;

指令systemctl set-default multi-user.target把默认运行级别改为多用户级别(即运行级别3)

重启后进入默认运行级别

【2】找回root密码(重置密码)

在系统启动时通过一些办法进入单用户模式,输入一些指令,输入新密码,不同版本系统办法不同。

CentOs7系统下:026_韩顺平Linux_找回root密码_哔哩哔哩_bilibili

【1】帮助指令

【2】文件目录类命令

【1】tips

[1]linux是区分大小写的

[2]修改密码时不要用小键盘输入数字

【2】小技巧

[1]linux的终端如果没有返回信息那应该就是上一个操作成功了。linux里“没有消息就是好消息”。

[2]命令clear清楚终端当前的内容以使界面简洁

[3]截图

alt+Prt Sc当前窗口截图,保存在目录/图像

shift+Prt Sc框选区域截图,保存在目录/图像

crtl+shift+Prt Sc框选区域截图,保留在剪贴板

小讯
上一篇 2025-06-11 23:27
下一篇 2025-04-30 09:20

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/167006.html