关于Linux的几点认知

在课上老师给我们介绍了Linux操作系统并提出了几个问题

LinuxUnix的关系:

linuxunix的一个变种,linux的源代码都是公开的,是一种免费的操作系统。

可以这么说UnixLinux的爸爸。

 

关于Linux的发展史  摘自百度百科:

"Hello everybody out there using minix——I'm doing a (free) operating system"  1991年的八月,网络上出现了一篇以此为开篇话语的帖子——这是一个芬兰的名为Linus Torvalds的大学生为自己开始写作一个类似minix,可运行在386上的操作系统寻找志同道合的合作伙伴。1991105日,Linus Torvalds在新闻组comp.os.minix发布了大约有一万行代码的Linux v0.01版本。到了1992年,大约有1000人在使用Linux,值得一提的是,他们基本上都属于真正意义上的hacker1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码有大约有十万行,用户大约有10万左右。19943月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。至此,Linux的代码开发进入良性循环。很多系统管理员开始在自己的操作系统环境中尝试linux,并将修改的代码提交给核心小组。由于拥有了丰富的操作系统平台,因而Linux的代码中也充实了对不同硬件系统的支持,大大的提高了跨平台移植性。1995年,此时的Linux可在IntelDigital以及Sun SPARC处理器上运行了,用户量也超过了50万,相关介绍LinuxLinux Journal杂志也发行了超过10万册之多。  19966月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux已经进入了实用阶段,全球大约有350万人使用。  1997年夏,大片《泰坦尼克号》在制作特效中使用的160Alpha图形工作站中,有105台采用了Linux操作系统。  1998年是Linux迅猛发展的一年。1月,小红帽高级研发实验室成立,同年RedHat 5.0获得了InfoWorld的操作系统奖项。4Mozilla代码发布,成为linux图形界面上的王牌浏览器。Redhat宣布商业支持计划,网络了多名优秀技术人员开始商业运作。王牌搜索引擎"Google"现身,采用的也是Linux服务器。值得一提的是,Oracle Informix两家数据库厂商明确表示不支持Linux,这个决定给予了Mysql数据库充分的发展机会。同年10月,IntelNetscape宣布小额投资红帽软件,这被业界视作Linux获得商业认同的信号。同月,微软在法国发布了反Linux公开信,这表明微软公司开始将Linux视作了一个对手来对待。十二月,IBM发布了适用于Linux的文件系统AFS 3.5以及Jikes Java编辑器和Secure MailerDB2测试版,IBM的此番行为,可以看作是与Linux羞答答地第一次亲密接触。迫于WindowsLinux的压力,Sun逐渐开放了Java协议,并且在UltraSparc上支持Linux操作系统。1998年可说是Linux与商业接触的一年。  1999年,IBM宣布与Redhat公司建立伙伴关系,以确保RedhatIBM机器上正确运行。三月,第一届LinuxWorld 大会的召开,象征Linux时代的来临。IBMCompaqNovell宣布投资Redhat公司,以前一直对Linux持否定态度的Oracle公司也宣布投资。五月,SGI公司宣布向Linux移植其先进的XFS文件系统。对于服务器来说,高效可靠的文件系统是不可或缺的,SGI的慷慨移植再一次帮助了Linux确立在服务器市场的专业性。7IBM启动对Linux的支持服务和发布了Linux DB2,从此结束了Linux得不到支持服务的历史,这可以视作Linux真正成为服务器操作系统一员的重要里程碑。  2000年初始,Sun公司在Linux的压力下宣布Solaris8降低售价。事实上LinuxSun造成的冲击远比对Windows来得更大。2Red Hat发布了嵌入式Linux的开发环境,Linux在嵌入式行业的潜力逐渐被发掘出来。在4月,拓林思公司宣布了推出中国首家Linux工程师认证考试,从此使Linux操作系统管理员的水准可以得到权威机构的资格认证,此举大大增加了国内Linux爱好者学习的热情。伴随着国际上的Linux热潮,国内的联想和联邦推出了"幸福Linux家用版",同年7月中科院与新华科技合作发展红旗Linux,此举让更多的国内个人用户认识到了存在着Linux这个操作系统。11月,IntelXteam合作,推出基于Linux的网络专用服务器,此举结束了在Linux单向顺应硬件商硬件开发驱动的历史。2001月新年依使就爆出新闻,Oracle宣布在OTN上的所有会员都可免费索取Oracle 9iLinux版本,从几年前的"绝不涉足Linux系统"到如今的主动献媚,足以体现Linux的发展迅猛。IBM则决定投入10亿美元扩大Linux系统的运用,此举犹如一针强心剂,令华尔街的投资者们闻风而动。到了5月这个初夏的时节,微软公开反对"GPL"引起了一场大规模的论战。8月红色代码爆发,引得许多站点纷纷从windows操作系统转向linux操作系统,虽然是一次被动的转变,不过也算是一次应用普及吧。12Red Hat IBM s/390大型计算机提供了Linux解决方案,从此结束了AIX孤单独行无人伴的历史。  2002年是Linux企业化的一年。2月,微软公司迫于各洲政府的压力,宣布扩大公开代码行动,这可是Linux开源带来的深刻影响的结果。3月,内核开发者宣布新的Linux系统支持64位的计算机。  20031月,NEC宣布将在其手机中使用Linux操作系统,代表着Linux成功进军手机领域。5月之中SCO表示就Linux使用的涉嫌未授权代码等问题对IBM进行起诉,此时人们才留意到,原本由SCO垄断的银行/金融领域,份额已经被Linux抢占了不少,也难怪SCO如此气急败坏了。9月中科红旗发布Red Flag Server4版本,性能改进良多。11IBM注资Novell2.1亿收购SuSE,同期Redhat计划停止免费的Linux,顿时业内骂声四起。Linux在商业化的路上渐行渐远。  2004年的第1月,本着"天下事分久必合,合久必分"之天理,SuSE嫁到了NovellSCO继续顶着骂名四处强行"化缘"AsianuxMandrakeSoft也在五年中首次宣布季度赢利。3SGI宣布成功实现了Linux操作系统支持256Itanium 2处理器。4月里美国斯坦福大学Linux大型机系统被黑客攻陷,再次证明了没有绝对安全的OS。六月的统计报告显示在世界500强超级计算机系统中,使用Linux操作系统的已经占到了280席,抢占了原本属于各种Unix的份额。9HP开始网罗Linux内核代码人员,以影响新版本的内核朝对HP有利的方式发展,而IBM则准备推出OpenPower服务器,仅运行Linux系统。"谁会牵你的手,走过风风雨雨"这句歌词曾经代表着千万Linuxer的心,如今,这只可爱的小企鹅终于能独挡一面,在IBMHPNovellOracle等诸多厂商的支持下,迎着风雪傲然前行。

 

POSIX标准  摘自百度百科:

POSIX 表示可移植操作系统接口(Portable Operating System Interface,缩写为 POSIX )POSIX标准定义了操作系统应该为应用程序提供的接口标准,是IEEE为要在各种UNIX操作系统上运行的软件而定义的一系列API标准的总称,其正式称呼为IEEE 1003,而国际标准名称为ISO/IEC 9945

 

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

 

POSIX 并不局限于 UNIX。许多其它的操作系统,例如DEC OpenVMS 支持POSIX 标准,尤其是IEEE Std. 1003.1-1990(1995 年修订)POSIX.1POSIX.1提供了源代码级别的 C语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1已经被国际标准化组织(International Standards OrganizationISO)所接受,被命名为ISO/IEC 9945-1:1990 标准。

 

GNU计划  摘自百度百科:

GNU计划,有译为“革奴计划”,是由理查德·斯托曼在1983927日公开发起的,它的目标是创建一套完全自由的操作系统。 理查德·斯托曼最早是在net.unix-wizards新闻组上公布该消息,并附带一份《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。

GNU是“GNU's Not UNIX”的递归缩写,为避免与gnu(非洲牛羚,发音与“new”相同)这个单词混淆,斯托曼宣布GNU应当发音为“Guh-NOO”(/?gnu?/(帮助·关于)),与“canoe”发音相似。

 

UNIX是一种广泛使用的商业操作系统的名称。由于GNU将要实现UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统。GNU计划采用了部分当时已经可自由使用的软件,例如TeX排版系统和X Window视窗系统等。不过GNU计划也开发了大批其他的自由软件,这些软件也被移植到其他操作系统平台上,例如Microsoft WindowsBSD家族、SolarisMacOS

 

为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都包含一份在禁止其他人添加任何限制的情况下,授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public LicenseGPL)。这个就是被称为‘公共版权’的概念。GNU也针对不同场合,提供GNU宽通用公共许可证(与GNU自由文档许可证这两种协议条款。

 

GPL协议  摘自百度百科:

GPL(GNU通用公共许可证)

GPL

GPL

 

大多数软件许可证决意剥夺你的共享和修改软件的自由。对比之下,GNU通用公共许可证试图保证你的共享和修改自由软件的自由。--保证自由软件对所有用户是自由的。GPL适用于大多数自由软件基金会的软件,以及由使用这些软件而承担义务的作者所开发的软件。(自由软件基金会的其他一些软件受GNU库通用许可证的保护)。你也可以将它用到你的程序中。当我们谈到自由软件(free software)时,我们指的是自由而不是价格。

 

我们的GNU通用公共许可证决意保证你有发布自由软件的自由(如果你愿意,你可以对此项服务收取一定的费用);保证你能收到源程序或者在你需要时能得到它;保证你能修改软件或将它的一部分用于新的自由软件;而且还保证你知道你能做这些事情。

 

为了保护你的权利,我们需要作出规定:禁止任何人不承认你的权利,或者要求你放弃这些权利。如果你修改了自由软件或者发布了软件的副本,这些规定就转化为你的责任。

 

例如,如果你发布这样一个程序的副本,不管是收费的还是免费的,你必须将你具有的一切权利给予你的接受者;你必须保证他们能收到或得到源程序;并且将这些条款给他们看,使他们知道他们有这样的权利。

 

我们采取两项措施来保护你的权利。

 

(1)给软件以版权保护。

 

(2)给你提供许可证。它给你复制,发布和修改这些软件的法律许可。

GPL标志

GPL标志

 

同样,为了保护每个作者和我们自己,我们需要清楚地让每个人明白,自由软件没有担保(no warranty)。如果由于其他某个人修改了软件,并继续加以传播。我们需要它的接受者明白:他们所得到的并不是原来的自由软件。由其他人引入的任何问题,不应损害原作者的声誉。

 

最后,任何自由软件不断受到软件专利的威胁。我们希望避免这样的风险,自由软件的再发布者以个人名义获得专利许可证。事实上,将软件变为私有。为防止这一点,我们必须明确:任何专利必须以允许每个人自由使用为前提,否则就不准许有专利。

<think>我们正在处理关于Linux串口驱动挂载点配置的问题。根据用户的问题,我们需要关注串口设备在Linux系统中的设备节点和挂载点配置。注意,串口设备通常作为字符设备存在于/dev目录下,而不是像磁盘分区那样需要挂载到文件系统目录。但是,用户可能指的是如何配置串口设备节点或如何设置串口终端。 根据引用[3]:在2.6以后的内核后,一些三星的芯片将串口终端设备节点命名为ttySACn。TI的Omap系列芯片使用omap-uart驱动,设备节点命名为ttyOn。例如,S3C2440的串口设备节点为ttySAC0,并可作为控制台终端(通过设置console=ttySAC0)。 另外,引用[5]提到:终端和控制台的概念。控制台是一种特殊的人机接口,是控制主机的第一人机接口。串口可以作为终端或控制台使用。 因此,串口设备在Linux中表现为字符设备文件,通常位于/dev目录下,如/dev/ttyS0(传统的COM1)或/dev/ttySAC0(三星ARM平台)等。这些设备节点是系统自动创建的,不需要用户手动挂载(不像磁盘分区需要挂载到某个目录)。但是,用户可能需要配置串口设备节点权限或使用特定的工具(如stty, minicom等)来操作串口。 然而,用户提到“挂载点配置”,可能是指如何将串口设备作为控制台(即内核输出和登录终端)来使用,这涉及到内核启动参数中的console参数设置。例如,在启动参数中设置: console=ttyS0,115200 # 使用ttyS0作为控制台,波特率115200 console=ttySAC0,115200 # 对于三星S3C2440等 此外,引用[2]中提到了文件系统挂载,但那是针对磁盘分区或可移动媒体的,与串口设备无关。 所以,针对用户的问题,我们需要解释以下几点: 1. 串口设备在Linux中作为字符设备,设备节点在/dev下,不需要挂载到文件系统目录(没有挂载点的概念)。 2. 配置串口控制台是通过内核启动参数(如uboot中的bootargs)设置console参数。 3. 如果需要使用串口进行通信,应用程序直接打开对应的设备文件(如/dev/ttyS0)并进行读写操作。 因此,回答如下:</think>### Linux 串口驱动挂载点配置解析 在 Linux 系统中,串口设备**不需要传统意义上的文件系统挂载点**(如磁盘分区的 `/mnt` 或 `/media`),因为串口属于**字符设备**,其操作通过设备节点直接进行。以下是关键配置信息: #### 1. **设备节点位置** 串口设备节点位于 `/dev` 目录下,命名规则因硬件驱动而异: - **传统 PC 串口**:`/dev/ttyS0`、`/dev/ttyS1`(对应 COM1、COM2) - **三星 ARM 芯片**(如 S3C2440):`/dev/ttySAC0`、`/dev/ttySAC1`(2.6+ 内核)[^3] - **TI OMAP 芯片**:`/dev/ttyOn`(专有 omap-uart 驱动)[^3] - **USB 转串口**:`/dev/ttyUSB0`、`/dev/ttyACM0` #### 2. **控制台配置** 若需将串口作为系统控制台(输出内核消息),需在内核启动参数设置: ```bash console=ttySAC0,115200 # 三星平台示例 console=ttyS0,115200 # x86 平台示例 ``` - 参数格式:`console=<设备节点>,<波特率>` - 需在 bootloader(如 U-Boot)中配置 `bootargs` 变量[^3] #### 3. **权限管理** 普通用户访问串口需添加权限: ```bash sudo usermod -aG dialout $USER # 加入 dialout 组 sudo chmod 666 /dev/ttySAC0 # 或配置 udev 规则持久化 ``` #### 4. **挂载点误区澄清** - ❌ **认知**:串口无需像磁盘分区一样挂载到目录(如 `/mnt`)。 - ✅ **正确操作**:应用程序直接读写设备节点(如 `open("/dev/ttyS0", O_RDWR)`)[^1][^5]。 #### 5. **相关工具** - **调试工具**:`minicom`、`screen`、`picocom` - **配置命令**:`stty -F /dev/ttyS0 115200 cs8`(设置波特率) > **关键区别**:串口是**字符设备**(直接读写字节流),而磁盘/U盘是**块设备**(需挂载文件系统)[^2][^4]。 --- ### 串口驱动加载流程 内核通过 LKM(可加载模块)管理串口驱动: 1. 加载模块:`insmod driver.ko` 2. 创建设备节点:驱动注册时自动生成 `/dev/ttyXX` 3. 用户进程通过 `read()`/`write()` 操作设备[^1] ```mermaid graph LR A[硬件串口] --> B[内核串口驱动] B --> C[/dev/ttyXX 设备节点] C --> D[应用程序读写] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值