• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

EDA和工具00GNU-Linux使用基础

linux 搞代码 3年前 (2022-03-03) 30次浏览 已收录 0个评论
文章目录[隐藏]

GNU/ Linux应用根底

这篇博客没有任何用意成为一个大而全的应用教程, 在这里只是记录一下这几天做个小我的项目所用到/ 回顾到的基础知识, 不便疾速入门. 文中的正文为理解内容, 文末为一些好的学习材料链接.

[TOC]

作为普通用户, PC端常见的操作系统有: Windows, Mac OS, 及类Unix零碎(GNU/Linux).

1. GNU/ Linux选用

  • 作服务器| Fedora系列: CentOS, RedHat, Fedora
  • 集体开发 | Debian系列: Ubuntu, Debian (树莓派-Raspbian)
  • 喜爱折腾 | Arch Linux
  • 搞嵌入式 | 自行裁剪Linux

嵌入式设施的OS(可能的学习程序): 裸机开发 -> uCOS-II -> uClinux -> Linux内核 -> Roadmap

其它: RT-Thread, Free RTOS, VxWorks, Windows CE

2. 零碎装置

这一节是个别教程间接略去的中央, 我这里简述.

2.1 零碎装置计划

集体开发, 我选用的零碎为Ubuntu. 当初个别有两种支流的版本, 18.04和16.04. Linux的版本号是有考究的, 这里不赘述. 我应用的是Ubuntu 18.04作为我开发深度学习的环境, 而Ubuntu16.04作为我装置Synopsys EDA Tools的环境. 零碎装置, 个别有三种计划:

  1. 新买一台电脑, 折腾

    不事实.

    然而能够有另外一个计划: 买一个树莓派, 配置Raspbian, 学习基本操作.

  2. 给本人电脑装置双系统

    没问题, 然而最好有肯定的电脑折腾教训, 否则操作不好可能会失落原操作系统文件.

  3. 应用VMware一类的软件创立一个GNU/ Linux虚拟机应用

    举荐.

  4. 其它计划: 云服务器, 老手不举荐.

2.2 零碎装置参考

如果选用计划1:

  • 自购PC: (因为是土豪玩家->)间接叫卖电脑的帮你装好/ 朋友圈50块大洋求助
  • 树莓派: 参考视频进行树莓派的选购与零碎装置, 或自行谷歌

如果选用计划2:

  • 我的主力机是联想援救者Y7000, 装置Windows和Ubuntu 18.04双系统的参考链接, 亲测可行

磁盘调配过程中, 如果碰到”Windows零碎压缩卷时可压缩空间远小于理论残余空间”状况参考.

我的电脑配置为: 8G + 8G DDR4, 100G + 375G Disk. 双系统次要是为了训练深度学习模型. 总共划分了100G给Ubuntu零碎, 子项为:

/         20G;    //     主分区, 蕴含零碎和软件, 尽量大
Swap     20G;     /*    相似Windows虚拟内存, 
                    物理内存为512Mb-2G时, swap设置为物理内存的2倍; 
                    物理内存为2G-4G时, swap设置为物理内存的1.5倍; 
                    物理内存在4G-8G时, swap设置等同物理内存; 
                    物理内存更大时, 设立为0.75倍; */
boot     512M;     //    启动分区, 蕴含操作系统内核和启动的程序, 200M - 1G
/Home     59.5G;    //    逻辑分区, 相似于Windows我的文档, 尽量大

如果选用计划3:

  • 能够网上找相干教程自行下载VMware装置
  • 我装置Synopsys EDA Tools的环境是Ubuntu 16.04, 应用的是虚拟机计划, 参考链接

3. 根本应用

GNU/ Linux在输出明码时是不会显示的, 输出时不要认为字没有打上去. 简略输完回车即可.

默认读者在零碎装置步骤中曾经实现了用户, 明码的设置, 并且胜利进入了图形界面(这里指桌面).

GNU/ Linux零碎提供两种交互方式:

  • GUI, 图形用户界面

    零碎向用户提供图形的界面, 用户能够通过鼠标点击和键盘输入实现操作.

  • CLI, 命令行界面

    零碎向用户提供用于操作的Shell, 用户通过输出命令实现操作.

GUI的操作形式与Windows和Mac OS简直统一, 用于解决一些通用的工作(文档, 聊天, 视频, 游戏…). 而CLI操作才是GNU/ Linux零碎的学习重点, 学习的话, 关上终端, 直面CLI即可.

这里又假如读者有一些简略的需要, 而后想应用CLI实现.

3.1 工作环境的概念

察看终端光标闪动的那一行, 结尾为Your_User_Name@Host_Name ~$. 其中, ~代表的是以后的工作环境. 为了了解这个工作环境, 咱们能够进行一个简略的小试验.

首先咱们晓得有两个命令:

  • ls代表list, 即列出当前工作环境下的所有文件
  • cd代表convert to, 即切换以后的工作环境

于是咱们首先输出

cd Desktop

而后回车. 能够看到闪动光标的那一行的~曾经变成了~/Desktop, 阐明咱们曾经来到了~下的Desktop里了.

这里这个Desktop等价于咱们的桌面. 而后咱们输出

ls

而后回车. 能够看到, 什么都没有返回. 这是因为咱们的桌面目前还什么货色都没有. 于是咱们先最小化咱们的终端程序, 而后在桌面鼠标右键, 新建一个文件夹, 取上一个本人的名字. 而后再关上终端程序, 再输出

ls

而后回车. 此时咱们就能够看到它返回了咱们桌面新建的文件的名字.

于是, 咱们能够晓得, 工作环境这个概念, 其中就是指, 咱们以后处于那个文件夹内.

3.2 根本命令构造

终端里的输出的指令次要由三局部形成, 比方文件复制命令cp:

cp -r Desktop/test Desktop/test2

这个命令中, cp代表copy, 指的是一个应用程序,

-r是对程序进行指定的参数, 这里用于指定文件夹内的文件,

前面的Desktop/testDesktop/test2能够看作是应用程序的操作对象.

这个语句代表的意思是, 将桌面的test内的所有文件夹复制到桌面test2文件夹里.

这个能够本人先在桌面创立两个文件夹本人测试一下.

Anyway, 根本的命令构造为:

应用程序 -程序参数 一个或者多个操作对象

于是, 接下来的学习, 就能够是, 学习更多的命令, 意识它们的参数, 成为Linux达人, 然而这样究竟是无聊的, 因为没有工作驱动.

所以, 咱们下一步应该做的, 其实是给本人找个什么货色折腾一下,

  • 比方尝试一下用Linux下的C/C++工具链(GCC, G++, GDB);
  • 又比方配置个深度学习环境玩玩(Anaconda+Python+OpenCV+Pytorch+TensorFlow-GPU);
  • 比方搭建一个简略的基于LAMP(Linux, Apache, MySQL, PHP)的集体小网站, …

折腾的时候, 基本上做的就是, 找个看起来靠谱的教程, 而后一行一行地跟着敲键盘.

可能很多命令都不晓得怎么回事, 然而这个敲的过程, 首先就能纠正很多习惯性的Typo…

4. 略微零碎一点学习GNU/ Linux的应用

之前的折腾都是跟着他人的教程始终敲, 多上手练习手感, 也强制本人去查一些根本的指令. 反正整多几次后, 常见的比如说ls, mv, cd, rm, mkdir, nano, su…这些应该都差不多有的印象了, 即收到某个简略的工作, 可能本人独立查找相干的帖子解决了.

而持续学习它的应用, 动机可能在于, 工作变得复杂了; 或者本人的需要比拟特地, 网上没有现成的; 再或者, 开始踏入某个具体的畛域, 那个畛域里的人的分享, 都是默认你会应用GNU/ Linux的.

这个时候, 举荐的书籍为: 鸟哥的Linux私房菜. (倡议买当下最新版本)

举荐的网络学习材料为: Linux 不入门到入门

这个阶段学习的时候, 如果呈现看不懂的状况, 那是非常失常的, 起因在于, 这时候才是真正地开始学习一个操作系统. (之前应用Windows和Mac OS时都是应用的他人建设在操作系统上的利用零碎 !)

如果真的对这块产生趣味了, 能够自行翻阅 深刻了解计算机系统 书籍, 进行计算机根底的扫盲.

再业余一点, 能够走这条路: 计算机组成原理 -> 操作系统原理 -> 计算机网络 -> (并行)计算机体系结构

GNU/ Linux的命令查问网址能够为: 查问

这个阶段学习重点能够是: 文件系统, 文本编辑器, 权限治理, Git+GitHub, 还能够再去理解几个近程拜访工具.

5. 脚本语言

能够说, 学习完4中的根底后, 读者曾经能够熟练地应用GNU/ Linux进行日常的工作了, 然而这并没有体现出应用CLI的劣势. 此时应该再学习一种叫做脚本语言的货色, 它的次要作用在于, 可能疾速地帮忙用户疾速地实现一系列繁琐的操作. 说到脚本语言, 最风行的, 肯定非Python莫属. 次要的脚本语言有:

  • Python
  • Csh
  • Bash
  • Makefile
  • Perl
  • TCL

对于普通用户, 学完Python和Csh足够. 而做运维或者嵌入式前端可能得多学个Bash和Makefile. 而后做数字IC设计的话, 可能得学完.

6. 深刻

到这一大节, 就不属于这篇博客题目”GNU/ Linux应用根底”所可能涵盖的范畴了.

说到底, GNU/ Linux也只是一个操作系统而已, 所以咱们能够从这些方面思考:

  • 向下看: GNU/ Linux的移植与驱动开发

    对于嵌入式软件工程师, 一部分工作是, 基于操作系统进行利用的开发; 而另一部分的工作是, 对GNU/ Linux这个零碎的内核进行裁剪和移植, 或者是为某种设施开发驱动. 前者须要对开发平台的软硬件都具备相当高的了解, 后者更是须要, 粗浅地了解Linux内核的源码, 以及对操作系统所基于的硬件零碎的相熟.

  • 向上看: 网络应用, 服务器与运行保护

    如果咱们不是嵌入式场景, 而换成大规模服务器集群的场景, 即成为了互联网公司的运维工程师, 则此时咱们须要思考的事件是, 怎么搭建一个更好的网络通信与开发平台, 供咱们的后端/ 前端同学大展身手. 这种场景一方面须要对服务器架构非常纯熟, 也须要很扎实的网络根底.

当然, Linux内核的源码也是美极, 能够学习他人的写代码的形式.


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:EDA和工具00GNU-Linux使用基础

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址