首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    X-Windows桌面

    提到X-Windows桌面,人们最先想到的一般都是KDE和GNOME。目前大多数的Linux发行版上的桌面环境都采用了这两个东西。确实,KDE和GNOME做得很好,界面美观、使用方便,而且现在Bug越来越少,确实很适合日常应用。所以现在几乎每个使用Linux的人都知道KDE和GNOME,他们几乎统治了Linux桌面。但实际上除了这两者外,尚存在许多其他桌面环境,如X-Face,FVWM等等。器重FVWM是一个老牌的,长久不衰的窗口管理器,它永远以一个忠实的 Xwindow 窗口管理器的方式工作。大家可以从网络上查找它的相关资料,很多很多。 我目前采用的桌面环境是FVWM+Thunar文件管理,很简单,但是速度极快,而且稳定性极佳。

    02

    【Linux】Linux背景、环境的搭建以及用XShell实现远程登陆

    肯尼斯·蓝·汤普森最早用汇编语言创建了UNIX系统,后来与他的好“基友”丹尼斯·里奇(C语言之父),他们两个一同用C语言重新写了UNIX系统,但是操作系统的使用是需要收费的,就比如我们现在大多数人所使用的Windows系统等,都是需要收费的,只不过我们当初在购买电脑的时候就已经一次性付过了。 起源 在1991年的时候,赫尔辛基大学的一位学生林纳斯·本纳第克特·托瓦兹仿造unix操作系统,编写了一个操作系统,并将它开源,命名为Linux;后续越来越多的顶级工程师甚至民间黑客参与了这个项目,并为Linux提供自己编写的源代码。 开源VS闭源 评价一个操作系统的好坏无非就是看它的稳定性、安全性、以及执行效率等。 所谓开源,就是把自己的源代码暴露在外部,而Linux的开源,就使得世界上的顶级工程师还有民间大佬都能看得到里面的一些细微的错误,并加以改正,进而不断地完善不断地修正,而像Windows这种闭源的操作系统,由于只有参与写这个系统的人了解源代码,局限于自身的认知,所以可能会存在一些问题隐藏的很好,因此,相较于此,开源下的Linux系统的稳定性、安全性,以及效率方面都是高于闭源下的Windows系统的。

    03

    树莓派的产品定位,以及探讨与ARM开发板的区别

    1、树莓派是一款基于Linux系统的单板机电脑。它由英国的树莓派基金会所开发,目的是以低价硬件及自由软件刺激在学校的基本的计算机科学教育。树莓派被赋予的希望是,能够帮助全世界的孩子学习编程,并能够了解计算机是如何工作的; 2、树莓派只要加上USB键盘、鼠标、HDMI屏幕就立马变成一个小型电脑,用于学习编程(Linux系统),系统中预装多种编程软件和环境,方便使用;并且利用树莓派,可以搭建多种应用:路由器、智能小车、智能家居、服务器等,这些都有成熟的开源代码; 3、树莓派跟windows虚拟机跑linux操作系统有什么区别?   1)对于系统使用,本质上没啥区别,都是Linux操作系统罢了,主要有以下三点区别;   2)软件上,树莓派预装很多开发软件,方便使用者直接用,不用经过繁琐的软件安装;   3)硬件系统不同,树莓派拥有丰富的硬件外接接口,用来对接其它硬件做试验;比如树莓派(作为主机)与Aduino(AVR内核的卡片机,作为从机)配合工作;   4)基于树莓派设备基础的社区生态比较完善,有很多开发者在树莓派软硬件基础上设计很多有用的工具和项目; 4、Raspberry的几种操作系统:   1)NOOBS   2)Raspbian   3)Ubuntu Mate   4)Snappy Ubuntu Core; 注意:采用不同的操作系统,本身的软硬件资源是不同的,视乎应用而选定; 5、常见的Linux系统:   1)商业版:red hat 、CentOs、suse;   2)开源版:debian ubuntu ;   3)系统的选择取决于你拥有的硬件,和商业应用。 6、树莓派上常用的脚本语言:Shell(Linux系统管理,运行软件:Bash/Dash/Tsch/LXTerminal)、Python(跨平台管理:服务器、网站管理); 7、树莓派自2012年推出以来全球销量已达1250万块,世界第三大计算平台。

    02

    Linux防火墙iptables中mark模块分析及编写

    在linux系统中为了更好的实现网络流量的管理,使用了内核的mark来标识网络流量。这样造成了用户层再使用mark来标记多线负载,两种mark会互相覆盖,达不到想要的结果。在此种情况下,通过研究发现可以扩展mark模块来解决这种冲突。    1 Iptables的结构和命令格式分析    1.1 Iptables的结构分析    Iptables是linux系统为用户提供的一个配置防火墙的工具。它提供一个命名规则集。在linux中iptables防火墙实现的核心模块是netfilter,它负责维护防火墙的规则链表,实现防火墙安全防御能力。Netfilter主要有三种功能:数据包过滤、网络地址转换(nat)以及数据包处理(mangle)。数据包过滤模块的功能是过滤报文,不作任何修改,或者接受,或者拒绝。Nat是网络地址转换,该模块以connection tracking模块为基础,仅对每个连接的第一个报文进行匹配和处理,然后交由connection tracking模块将处理结果应用到该连接之后的所有报文。Mangle是属于可以进行报文内容修改的ip tables,可供修改的报文内容包括mark、tos、ttl等。同时该模块带有用户空间和内核交流的接口。    1.2 Iptables命令格式分析    一个最简单的规则可以描述为拒绝所有转发报文,用iptables命令表示就是:iptables -A FORWORD -j DROP。Iptables应用程序将命令行输入转换为程序可读的格式,然后再调用libiptc库提供的iptc_commit()函数向核心提交该操作请求。它根据请求设置了一个struct ipt_replace结构,用来描述规则所涉及的表和HOOK点等信息,并在其后附接当前这条规则,一个struct ipt_entry结构。组织好这些数据后,iptc_commit()调用setsockopt()系统调用来启动核心处理这一请求。    2 Netfilter的结构分析    Netfilter是linux系统中的内核防火墙框架,主要进行包过滤,连接跟踪,地址转换的功能,是防火墙的基础。其主要通过表、链实现。在netfilter中,每种网络协议都有自己的一套hook函数。数据报经过协议栈的几个关键点时调用hook函数,hook函数标号和协议栈数据报作为参数,传递给netfilter框架。其主要框架如图1所示:    3 Netfilter和 Iptables相关模块属性分析    3.1 与netfilter有关的结构    Netfilter一个重大修正思想就是将netfilter作为一个协议无关的框架,表现在内核结构树中单独建立net/netfilter目录,在net/netfilter下的匹配和目标模块文件名称以“xt_”开头。    为了和iptables兼容,这些文件中增加了一个新的宏定义:module_alias,来表示模块的别名。所有扩展程序的名称也是以xt开头。    Netfilter扩展的程序框架:    Xt_kzmark.c:    Static unsigned int kzmark_tg(struct sk_buff *skb, const struct xt_action_param *par)    Static int kzmark_tg_check(const struct xt_tgchk_param *par)    Static void kzmark_tg_destroy(const struct xt_tgdtor_param *par)    Static boool kzmark_mt(const struct sk_buff *skb, struct xt_action_param *par)    Static int kzmark_mt_check(const struct xt_mtchk_param *par)    Static void kzmark_mt_destroy(const struct xt_mtdtor_param *par)    Static struct xt_target kzmark_tg_reg __read_mostly = {}    Static struct xt_match kzmark_mt_reg __read_mostly = {}    Static int __init kzmark_mt_init(void)    {Int ret;    Need_ipv4_conntrack();    Ret = xt_register_target(&kzmark_tg_reg);    Ret = xt_register_match(&kzmark_mt_reg);}    Static void_exi

    02

    详解linux驱动编写(入门)

    在我离职之前,工作内容几乎不涉及到驱动方面的知识。我所要做的内容就是把客户对设备的请求拆分成一个一个的接口,调用驱动的设置进行配置就可以了。当然,至于驱动下面是怎么实现那就要根据具体情况而定了。比如说,有的驱动是芯片厂商直接写好的,假设芯片厂商提供了对应平台的sdk函数,那么驱动的工作就是对这些sdk函数进行封装就可以了,另外一种就是自己编写具体平台的驱动接口了。比如说,现在你需要编写串口、i2c、i2s、FLASH、网卡、LCD、触摸屏、USB驱动了。这个时候,你手里面除了一堆芯片手册,啥也没有。能不能调试成功,就看你自己的了。当然,一般情况下,在特定的平台上会有很多同类型的demo代码,你可以依葫芦画瓢修改一下,除了中断、地址、读写等部分注意一下,大部分的逻辑其实差异不大。至于修改的速度快不快就看你自己的了。

    03
    领券