构建嵌入式Linux操作系统 Linux操作系统的介绍

2023-05-16

目前流行的嵌入式操作系统有Linux、WinCE、VxWorks等。Linux作为一种免费的类UNIX操作系统,由于其功能强大,在嵌入式产品的应用中非常广泛。

Linux操作系统的介绍

Linux操作系统
Linux操作系统是一个类UNIX计算机操作系统。Linux操作系统的内核的名字也是Linux。Linux这个词本身只表示Linux内核,但在实际中人们已经习惯了用Linux形容整个基于Linux内核的操作系统。Linux的最初版本由Linus Torvalds开发,此后得到互联网上很多计算机高手的支持,已经是一个非常成熟稳定的操作系统。

1.Linux的诞生

Linux诞生于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他开发Linux的最初目的是想设计一个代替Minix(Minix是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统。Minix这个操作系统可用于386、486或奔腾处理器的个人计算机上,并且具有UNIX操作系统的大部分功能。由于Andrew Tannebaum教授并不允许开发人员对Minix进行扩展,所以Linus Torvalds决定开发一个新的类似于Minix的操作系统,但相比Minix有更多的功能。

2.Linux与GNU计划

Linux的发展与GNU计划密切相关。1983年,Richard Stallman创立了GNU计划(GNU Project)。这个计划有一个目标,是为了发展一个完全免费自由的类UNIX的操作系统。自1990年发起这个计划以来,GNU开始大量地收集和开发类UNIX系统所必备的元件,例如函式库(libraries)、编译器(compilers)、调试工具(debuggers)、文字编辑器(text editors)、网页服务器(web server),以及一个UNIX的用户接口(Unix shell),但是一个好的内核核心一直没有出现。
1990年,GNU计划开始在Mach microkernel的架构之上开发内核核心,也就是所谓的GNU Hurd计划,但是这个基于Mach的设计异常复杂,发展进度相对缓慢,并没有取得太大的成效。恰好此时,大约是1991年4月,Linus Torvalds开发的Linux 0.01版被他发布到互联网上,引起了很多程序员的关注。
Linus Torvalds宣布这是一个免费的系统,主要在x86电脑上使用。Linus Torvalds希望大家一起来完善它,并将源代码放到了芬兰的FTP站点上任人免费下载。本来他想把这个系统称为freax,意思是自由(free)和奇异(freak)的结合字,并且附上了X这个常用的字母,以配合所谓的类UNIX(Unix-like)的系统。可是FTP的工作人员认为这是Linus的新操作系统,觉得原来的命名Freax的名称不好听,就用Linux这个子目录来存放,于是大家就将它称为Linux。这时的Linux只有内核程序,仅有10000行代码,仍必须执行于Minix操作系统之上,并且必须使用硬盘开机,还不能称做是完整的操作系统;随后在10月份Linux的第二个版本(0.02版)发布,许多专业程序员自愿地开发它的应用程序,并借助Internet拿出来让大家一起修改。在很短的一段时间内,Linux的应用程序越来越多,由此Linux本身也逐渐发展壮大起来。到目前为止最新的内核主版本已经是2.6了。

Linux操作系统的优点

Linux操作系统有很多优点,具有十分丰富的应用功能。这些功能特别适用于嵌入式系统,这些优点如下所示。

1.价格低廉

Linux操作系统使用了大量的GNU软件,包括了shell程序、工具集、程序库、编译器等。这些程序都可以免费或者以极低的价格得到,所以Linux操作系统是一个价格低廉的操作系统。基于这个原因,Linux常常被应用于嵌入式系统中,例如机顶盒、移动电话甚至机器人中。在移动电话上,Linux已经成为与Symbian OS、Windows Mobile系统并列的三大智能手机操作系统之一;而在移动装置上,则成为Windows CE与Palm OS外另一个好的选择。此外,还有不少硬件式的网络防火墙及路由器,其内部都是使用Linux操作系统,其执行效率和安全性非常高。

2.高效性和灵活性

Linux以它的高效性和灵活性著称。Linux操作系统是一个非常高效的系统,广泛应用于对效率要求较好的服务器上。另外,Linux操作系统的灵活性也是其他操作系统无法比拟的。Linux操作系统可以根据用户需要自己配置内核,增加或者减少相应的功能。通过这种方式,Linux操作系统几乎支持目前所有的常用硬件,就算有不支持的硬件,驱动开发人员也可以在很短的时间内写出相应的驱动程序来。

3.广泛性

Linux操作系统可以应用于目前大多数处理器架构上,其应用非常广泛。据统计,目前世上运行最快的500台超级计算机上,有74%的计算机使用的都是Linux操作系统。对于嵌入式系统,处理器的选择非常广泛,幸运的是,Linux几乎支持所有的主流处理器,最典型的就是ARM处理器。嵌入式系统开发人员,可以直接移植Linux操作系统并选择一些可靠的自由软件,就能够组装一个有用的嵌入式系统,极大地减少了开发时间。

4.强大的功能

每一天,全球有很多开发人员都在对Linux操作系统进行开发,所以每一天都有新的功能
被添加到Linux中。到目前为止,Linux已经发展成了一个遵循POSIX标准的纯32位操作系统,64位版本也已经发布。Linux可以兼容大部分的UNIX系统,很多UNIX的程序不需要改动,或者很少的改变就可以运行于Linux环境中;内置TCP/IP协议,可以直接连入Internet,作为服务器或者终端使用;内置Java解释器,可直接运行Java源代码;具备程序语言开发、文字编辑和排版、数据库处理等能力;提供X Window的图形界面;主要用于x86系列的个人电脑,也有其他不同硬件平台的版本,支持现在流行的所有硬件设备。
就性能上来说,它并不弱于Windows甚至UNIX,而且靠仿真程序还可以运行Windows应用程序。它有成千上万的各类应用软件,并不输于Windows的应用软件数量,其中也有商业公司开发的赢利性的软件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

构建嵌入式Linux操作系统 Linux操作系统的介绍 的相关文章

  • 如何查明 Ubuntu 上安装了哪个版本的 GTK+?

    我需要确定 Ubuntu 上安装了哪个版本的 GTK 男人似乎不帮忙 这个建议 https stackoverflow com a 126145 会告诉您安装了哪个 2 0 的次要版本 不同的主要版本将具有不同的包名称 因为它们可以在系统上
  • 如何用X11复制到剪贴板?

    使用 OS X 上的框架 我可以使用以下命令将 PNG 复制到粘贴板 在 C 中 显然我可以将 NSPasteboard 与 Cocoa 一起使用 include
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 在 LINUX 上使用 Python 连接到 OLAP 多维数据集

    我知道如何在 Windows 上使用 Python 连接到 MS OLAP 多维数据集 嗯 至少有一种方法 通常我使用 win32py 包并调用 COM 对象进行连接 import win32com client connection wi
  • 无法安装 WWW::Curl::Easy: SZBALINT/WWW-Curl-4.17.tar.gz : make NO

    我正在尝试在我的 Fedora 26 机器上安装 WWW Curl Easy gcc c I usr include D REENTRANT D GNU SOURCE O2 g pipe Wall Werror format securit
  • Linux 中热插拔设备时检测设备是否存在

    我正在运行 SPIcode http lxr free electrons com source drivers spi spi omap2 mcspi c在熊猫板上 我想知道其中的哪个功能code http lxr free electr
  • 在Linux中断上下文中运行用户线程

    我正在编写一些定制的应用程序 并允许更改 Linux 内核中的中断处理程序代码 我有一个用户线程正在等待中断发生 如果发生中断 那么我要做的第一件事就是执行该用户线程 有什么办法让它发挥作用吗 Thanks 创建一个字符设备 这就是内核所做
  • 每个进程每个线程的时间量

    我有一个关于 Windows 和 Linux 中进程和线程的时间量子的问题 我知道操作系统通常为每个线程提供固定的时间量 我知道时间量根据前台或后台线程而变化 也可能根据进程的优先级而变化 每个进程有固定的时间量吗 例如 如果操作系统为每个
  • Linux shell 脚本:十六进制数字到二进制字符串

    我正在 shell 脚本中寻找一些简单的方法来将十六进制数字转换为 0 和 1 字符的序列 Example 5F gt 01011111 是否有任何命令或简单的方法来完成它 或者我应该为其编写一些开关 echo ibase 16 obase
  • C 程序从连接到系统的 USB 设备读取数据

    我正在尝试从连接到系统 USB 端口的 USB 设备 例如随身碟 获取数据 在这里 我可以打开设备文件并读取一些随机原始数据 但我想获取像 minicom teraterm 这样的数据 请让我知道我可以使用哪些方法和库来成功完成此操作以及如
  • 信号处理程序有单独的堆栈吗?

    信号处理程序是否有单独的堆栈 就像每个线程都有单独的堆栈一样 这是在 Linux C 环境中 来自 Linux 手册页signal 7 http kernel org doc man pages online pages man7 sign
  • 如何制作和应用SVN补丁?

    我想制作一个SVN类型的补丁文件httpd conf这样我就可以轻松地将其应用到其他主机上 If I do cd root diff Naur etc httpd conf httpd conf original etc httpd con
  • 并行运行 make 时出错

    考虑以下制作 all a b a echo a exit 1 b echo b start sleep 1 echo b end 当运行它时make j2我收到以下输出 echo a echo b start a exit 1 b star
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 在Linux上编译C# + WPF以便在Windows上运行

    我有一个 C 应用程序 其中某些部分是使用 WPF 编写的 Mono 不支持 可以在 Linux 上编译这个应用程序吗 最终 该应用程序将在 Windows 上运行 但它是更大框架的一部分 并且我们的整个构建过程在 Linux 上运行 因此
  • 为什么我收到的数据包数据大小大于mss?

    我在两台 PC 上使用 ifconfig ethX mtu 300 修改了 MTU 并使用 netperf 测试网络 我用 WireShark 嗅探了 SYN 数据包中的 MSS 260 但我得到了一些大于 260 的数据包 为什么 嗅探器
  • 如何修复“iptables:没有该名称的链/目标/匹配”?

    我在我的 Linux 嵌入式系统上构建并安装了 iptables 如果我列出所有规则 则一切正常 iptables list Chain INPUT policy ACCEPT target prot opt source destinat
  • 拆分字符串以仅获取前 5 个字符

    我想去那个地点 var log src ap kernelmodule 10 001 100 但看起来我的代码必须处理 ap kernelmodule 10 002 100 ap kernelmodule 10 003 101 等 我想使用
  • bluetoothctl 到 hcitool 等效命令

    在 Linux 中 我曾经使用 hidd connect mmac 来连接 BT 设备 但自 Bluez5 以来 这种情况已经消失了 我可以使用 bluetoothctl 手动建立连接 但我需要从我的应用程序使用这些命令 并且使用 blue
  • awk 子串单个字符

    这是columns txt aaa bbb 3 ccc ddd 2 eee fff 1 3 3 g 3 hhh i jjj 3 kkk ll 3 mm nn oo 3 我可以找到第二列以 b 开头的行 awk if substr 2 1 1

随机推荐

  • 2022年下半年网络规划设计师考试下午真题

    试题一 案例一 某单位网站受到攻击 首页被非法篡改 经安全专业机构调查 该网站有一个两年前被人非法上传的后门程序 本次攻击就是因为其他攻击者发现该后门程序并利用其实施非法篡改 nbsp 案例二 网站管理员某天打开本单位门户网站首页后 发现自
  • 2022年信息安全工程师上午真题及答案解析

    2022年信息安全工程师上午真题及答案解析 1 中华人民共和国网络安全法 第五十八条明确规定 因维护安全和社会公共秩序 处置重大突发社会安全事件的需要 经 nbsp 决定或者批准 可以在特定区域对网络通信采取限制等临时措施 A 国务院 B
  • 2022年信息安全工程师下午真题及答案解析

    2022年信息安全工程师下午真题及答案解析 阅读下列说明 xff0c 回答问题1至问题3 将解答填入答题纸的对应栏内 说明 访问控制是保障信息系统安全的主要策略之一 xff0c 其主要任务是保证系统资源不被非法使用和非常规访问 访问控制规定
  • 华为交换机Console密码重置、设备初始化、默认密码

    1 华为交换机Console密码重置 1 通过Console口连接交换机 xff0c 并重启交换机 2 当界面出现以下打印信息时 xff0c 及时按下快捷键 Ctrl 43 B 并输入BootROM BootLoad密码 xff0c 进入B
  • 华为S7700交换机如何清除console密码

    问题描述 s7700设备如何清除console密码 解决方案 S7703设备清除console密码过程 重新启动设备 xff08 设备单主控启动 xff0c 双主控请拔下一张主控卡 xff09 当设备上电后 xff0c 操作终端屏幕上显示如
  • 华为交换机配置ssh登录远程管理交换机

    配置华为交换机ssh远程登录 xff0c 先配置交换机的管理地址和vlan xff0c 此处为vlan10 xff0c 把接口GE0 0 1划入vlan10 xff0c 管理地址为192 168 10 100 241 创建本地密钥对 配置接
  • Oracle用户被解锁解决方案(1)

    xfeff xfeff 查看被锁的用户 select LOCK DATE username from dba users where username 61 39 USERNAME 39 LOCK DATE为空说明没有锁定 xff0c 非空
  • 华为S5700交换机初始化和配置telnet,ssh用户方法

    华为S5700交换机初始化和配置telnet xff0c ssh用户方法 通过串口线配置S5700 的管理IP地址和网关 xff0c 串口线接在交换机的console口 xff0c ip设置完成后网线接在ETH口 xff1a lt Quid
  • 华为交换机恢复出厂设置

    华为交换机恢复出厂设置 方法一 xff1a 已知用户名和密码场景 lt SW gt reset saved configuration Warning The action will delete the saved configurati
  • 常用网络工具5:网络抓包工具wireshark

    Wireshark xff08 前称Ethereal xff09 是一个网络数据包分析软件 网络数据包分析软件的功能是截取网络数据包 xff0c 并尽可能显示出最为详细的网络数据包数据 Wireshark使用WinPCAP作为接口 xff0
  • OpenHarmony 3.0 虚拟机开发环境

    本文介绍一种简单的OpenHarmony环境搭建方法 首先我们要知道环境搭建包括哪些内容 xff0c 这样我们才好知道如何去搭建 通常来说 xff0c 环境搭建包括这3大部分 xff1a 代码编写 代码编译 代码下载 烧录程序 在OpenH
  • 程序员如何更好的提升自己

    首先你得明白 xff0c 一个人的能力就像一个池塘 xff0c 不断的输入又不断地输出 xff0c 水池的容量以及水的质量决定了输出的高效与否 xff0c 输入大于输出 xff0c 你的池塘就会不断扩大 xff0c 换句话说你会的技能就越来
  • error:D8016 “/ZI”和“/Gy-”命令行选项不兼容 ”问题解决

    VS调试中出现上述问题 进入 项目 gt 属性 gt C C 43 43 xff08 1 xff09 gt 常规 gt 调试信息格式 gt 选择 程序数据库 Zi 或 无 xff08 2 xff09 gt 代码生成 gt 启用函数集链接 g
  • Linux驱动程序开发用户态和内核态 模块机制

    Linux驱动程序开发 用户态和内核态 Linux操作系统分为用户态和内核态 用户态处理上层的软件工作 内核态用来管理用户态的程序 xff0c 完成用户态请求的工作 驱动程序与底层的硬件交互 xff0c 所以工作在内核态 Linux操作系统
  • QT学习第一步 QT下载及安装详细步骤

    下载地址 xff1a QT官方网站 QT下载安装地址 选择的这个 xff1a QT下载安装地址 文件名称选择 xff0c 图中红色箭头详解 xff1a 选择archive QT开发工具安装包文件夹 xff1a 进入之后显示的文件夹 xff1
  • RT-Thread临界段的保护

    临界段的保护 什么是临界段 临界段 xff0c 用一句话概括就是一段在执行时不能被中断的代码段 在RT Thread中 xff0c 临界段最常出现的场景就是对全局变量的操作 xff0c 全局变量就好像是一个靶子 xff0c 谁都可以对其开枪
  • Oracle中expdp与impdp--导入和导出操作步骤

    Oracle expdp 与impdp 一 根据用户导出导入数据 用户和表空间都相同 这些命令必须在Oracle 工具执行 create directory dpdata1 as E oracle home product backup 这
  • 编写Linux设备驱动程序的注意事项

    编写设备驱动程序的注意事项 应用程序开发与驱动程序开发的差异 在Linux上的程序开发一般分为两种 xff0c 一种是内核及驱动程序开发 xff0c 另一种是应用程序开发 这两种开发种类对应Linux的两种状态 xff0c 分别是内核态和用
  • 单片机STM32F103RB,BLDC直流电机控制器设计,原理图、源码和电路方案

    基于STM32 BLDC直流无刷电机控制器设计 xff0c 并附上原理图和源码等 源代码是基于免费开源CoOS UCOS类似 操作系统上写的 xff0c 在学习无刷电机的控制同时还能学习到操作系统的知识 同时提供用Matlab的GUI编写的
  • 构建嵌入式Linux操作系统 Linux操作系统的介绍

    目前流行的嵌入式操作系统有Linux WinCE VxWorks等 Linux作为一种免费的类UNIX操作系统 xff0c 由于其功能强大 xff0c 在嵌入式产品的应用中非常广泛 Linux操作系统的介绍 Linux操作系统 Linux操