Questions tagged «linux»

Linux是流行的开源操作系统内核。Linus Torvalds于1991年开始开发内核。


19
是否有任何理由使用C ++代替C,Perl,Python等?[关闭]
作为Linux(服务器端)开发人员,我不知道在哪里以及为什么应该使用C ++。 当我追求性能时,第一个和最后一个选择是C。 当“性能”不是主要问题时,Perl和Python等编程语言将是不错的选择。 我在这方面了解的几乎所有开源应用程序都是用C,Perl,Python,Bash脚本,AWK甚至PHP编写的,但是没有人使用C ++。 我不是在讨论GUI或Web应用程序之类的其他领域,而是在谈论Linux,CLI和守护程序。 使用C ++是否有令人满意的理由?

10
Ken Thompson的编译器黑客仍然是威胁吗?
肯·汤普森·哈克(1984) 肯·汤普森(Ken Thompson)于1984年概述了一种破坏编译器二进制文件(和其他已编译软件,例如* nix系统上的登录脚本)的方法。我很想知道现代编译是否解决了此安全漏洞。 简短的介绍: 重新编写编译器代码以包含2个缺陷: 在编译自己的二进制文件时,编译器必须编译这些缺陷 在编译其他一些预选的代码(登录功能)时,它必须编译一些任意的后门 因此,编译器可以正常工作-编译登录脚本或类似文件时,可以创建安全后门,并且将来在编译自身的较新版本时,它仍保留以前的缺陷- 并且这些缺陷仅存在于编译器中二进制文件,因此很难检测。 问题: 我在网上找不到任何答案: 这与即时编译有什么关系? 运行诸如* nix系统上的登录名的程序之类的功能在运行时是否已编译? 这仍然是一个有效的威胁吗?或者自1984年以来在编译安全性方面的发展阻止了它成为一个重大问题? 这会影响所有语言吗? 我为什么想知道? 我在做作业时遇到了这个问题,这看起来很有趣,但是我缺乏具体了解这个问题是解决当前问题还是解决问题的背景。 参考资料 总览 一些代码
156 linux  unix  compiler  hacking 

20
使用开源作为开发人员来赚钱?
我目前是一名学生(应用信息技术),我们用C#和Java进行大部分编程。我想知道作为一名开发人员,如何通过开源赚钱。我知道有提供支持或提供服务的故事,但我不是sysadmin,而且我不喜欢sysadmin的工作。实际上,我希望将来能使用一些C和C ++并进行一些底层开发。 所以我的实际问题是:开源软件的开发能赚钱吗? 编辑:只是指出启动我自己的开源项目不是必需的。

8
'\ n'和'\ r \ n'之间的区别
是的,我知道可以'\n'在UNIX 中写换行符,而对于Windows,则有两个字符序列:'\r\n'。从理论上讲,所有这些都很好,但是我的问题是为什么?为什么在Windows中回车符是多余的?如果UNIX可以做到这一点,\n为什么Windows则需要两个字符来完成呢? 我正在阅读David Beazley的Python书,他说: 例如,在Windows上,写入字符'\ n'实际上会输出两个字符的序列'\ r \ n'(并且在读回文件时,'\ r \ n'被转换回单个'\ n'字符)。 为什么要付出额外的努力? 我会说实话。我很早就知道它们之间的区别了,但是从来没有问过为什么。我希望今天能回答。 谢谢你的时间。

24
程序员为什么要使用或推荐Mac OS X?[关闭]
我在Mac和Windows上都工作了一段时间。但是,我仍然很难理解为什么程序员会热情地选择Mac OS X而不是Windows和Linux? 我知道有些程序员更喜欢Windows和Linux,但是我要问的是只使用Mac OS X的程序员,因为他们认为Mac OS X最适合程序员。 有人可能会说Mac OS X拥有漂亮的UI,并且基于nix,但是Linux可以做到。尽管Windows不是基于nix的,但是除了Cocoa / Objective-C之外,您几乎可以在任何平台或语言上进行开发。 是仅在Mac OS X上可用的应用程序吗?这真的值得吗? 是开发iPhone应用程序吗? 是否因为您需要每2年升级一次Windows(向后兼容性较低)? 我知道为什么在多媒体/娱乐行业工作的人们会使用Mac OSX。但是,我不知道Mac OS X在Windows上有什么优点。如果您每天在Mac上进行开发,并且比其他任何事物都更喜欢Mac,那么能否给我带来Mac在Windows / Linux之上的优点?也许您可以在Mac上做的某些事情在Windows / Linux上做不到那么轻松? 我不是在这里尝试做另一台Mac vs. Windows。我试图找到可以在Mac上完成但在Windows上无法做到的轻松程度,但我做不到的事情。因此,我正在寻求帮助。

16
从Windows迁移到Linux [关闭]
我需要调和这两个事实: 在Linux上工作时,我感到不舒服。 我需要为Linux开发软件。 背景知识:我在Windows上有10年以上的编程经验(几乎全部是C / C ++,但也有一些.NET),我在家里使用FreeBSD大约3年左右(然后不得不回到Windows),而我从来没有对Linux感到过运。现在,我必须为Linux开发软件。我需要一个计划。 在Windows上,您只需要了解一种编程语言,要针对其进行编码的API,您的IDE(VisualStudio)以及一些非常基本的故障排除工具(Depends,ProcessExplorer,DebugView,WinDbg)就可以摆脱困境。其他一切都是自然而然的。 在Linux上,这是一个非常不同的故事。如果我从Firefox插件链接到哪个DLL(抱歉,共享库),我怎么会知道呢?在Linux中相当于在源中插入__asm int 3 / DebugBreak()并运行程序,然后让OS调用调试器,这等效于Linux?为什么地狱版本的构建使用称为appLoader的东西,而调试版本的工作却有所不同?最糟糕的是:如何配置Linux开发环境? 因此,考虑到仇恨通常与不够了解有关,您会建议什么?我对Emacs和GCC没问题。我需要以Linux管理员/用户的身份接受教育,并且需要学习适当的故障排除工具(strace很酷,顺便说一句),与我上面提到的工具相当。 我需要从头开始做Linux吗?还是我只需要阅读一些书籍(我已经阅读了Kernighan的“ UNIX编程环境”和Stevens的“ Advanced Programming ...”,但我需要学习一些更实际的东西)?还是我需要在家用计算机上安装一些Linux发行版?

9
Linux上用于C ++和C开发的IDE的比较:KDevelop,Eclipse,NetBeans,CodeBlocks和Anjuta
我想指出您在Linux上使用全尺寸IDE的经验。 我个人主要与一起工作vim,但是其他程序员希望看到一个真正的IDE。因此,在以下情况下,我想听听您对不同IDE的个人看法以及它们之间的比较: C ++,也许还有一些C开发(不是Java,Python和其他东西) 服务器端编程(无需GUI开发) 在Linux上工作而不是“跨平台”开发。 需要考虑的意见: 它的稳定性如何?如果IDE崩溃,则不需要它。 使用舒适。 强大的调试功能。 与各种构建系统集成 大型项目(数十万行代码的项目)的可伸缩性 我曾经使用过KDevelop,它是一个非常不错的IDE,似乎KDevelop 4是一个巨大的进步。似乎还有许多人宁愿使用Netbeans和Eclipse。
49 c++  ide  linux 

2
如何成为内核/系统/设备驱动程序程序员?[关闭]
我目前以软件工程师的身份从事Android操作系统的工作。我们致力于将平台作为本地守护程序集成到项目的其他方面。我主要从事Java开发SDK和Android应用程序的工作,但获得有关C / C ++平台的帮助。 任何人,我都非常有兴趣从事Linux的低级专业开发工作。我对目前的职位并不感到不满意,只要公司允许我徘徊(事实上,我很喜欢在那里工作!),但是我想朝这个方向努力。我一直在研究Linux内核开发(Robert Love)和Linux编程接口(Michael Kerrisk)(除了在每次获得机会时都增强我的C技能),并随意浏览Monster和类似的网站。 我看到的问题是,没有入门级职位。一个人如何进入这一领域?每当我看到“ Linux系统程序员”或“ Linux设备驱动程序程序员”时,他们都需要至少 5-7年的相关经验。他们想要的是一个懂行的人,而不是初级程序员(我已经工作了7个月了……)。 所以,我假设,一些从事stackoverflow的人以我想做的专业工作。你是怎么到达那里的?您使用什么平台在那工作?我是否会因为CSC的学士学位而不是计算机工程师(他们会遇到更多的嵌入式,ASM等问题)而变得更加困难? 编辑澄清! 我知道linux内核/驱动程序等的开源性质。无论我的工作在哪里,我都计划做出贡献。我更好奇什么样的入门级职位可以让我从事相关工作并获得报酬!感谢到目前为止的所有答复!
40 c  linux  linux-kernel 

6
Git友好的电子表格格式?[关闭]
我们正在尝试将项目文档流程从Google文档移至一组自托管的Git存储库。 文本文档对Git足够友好,因为我们通常不需要任何精美的格式,因此我们仅将所有内容转换为multimarkdown,并可以在复杂情况下嵌入LaTeX。 但是电子表格的故事大不相同...是否有一种类似于版本控制系统的扩展格式(最好与Markdown一样易于阅读)? “友好格式”:Git与格式兼容(不适用于XML),并且生成易于理解的差异(可以进行涉及外部工具的额外配置)。 显然,Markdown风格允许建立静态表,但我希望能够使用诸如此类的东西SUM()(请注意CSV也存在相同的问题。)没有所见即所得的功能,但是可以提供不错的编辑器/工具支持很好 更新:请仅提供Linux友好的答案。没有MS Office资料。

8
开发人员为什么不在Linux上制作安装向导?[关闭]
我敢肯定这不是关于懒惰之类的事情,但是我无法理解为什么什至主要面向消费者的应用程序的开发人员都没有做出任何安装向导来进行下一步。相同的应用程序通常都具有Windows和Mac OS的安装程序,那么为什么不使用Linux? 这种趋势是否有任何技术原因,还是仅仅是惯例? 编辑(2014年9月23日):并未询问此问题来启动Windows vs Linux的火焰大战。我已经使用了所有3种主要操作系统,除了Linux,其他两个(Windows和Mac OS)都具有安装程序。我尚未安装Oracle,但无论需要安装什么,都从未见过任何Linux的GUI安装程序。 是的,我知道Linux具有软件包管理器,因此开发人员无需“不需要”进行安装。但是,仍然有大量软件要么在默认程序包管理器中已过时,要么根本不可用。另外,由于Linux是针对休闲用户的Windows的替代产品(Ubuntu在该领域正在努力),因此仅向用户提供他们熟悉的内容会更有意义。 例如,设置一个LAMP堆栈。这些都是默认存储库中的所有开源软件,但是您可以在没有脚本的情况下一次性设置所有内容吗?现在查看Windows中的WAMP服务器。您只需要运行一个安装程序,它就会以相互协作的方式安装多个软件。然后,它会设置好的默认值和内容。安装程序可以做到这一点,而程序包管理器则不能。是的,您可以在网上找到该脚本,但是在哪里?哪一个? 安装程序不是过去的过时技术。它们仍然有用,并且95%的用户已经对它们感到满意。

5
为什么Windows / Linux不使用关系数据库(RDBMS)?
Windows / Linux为什么不使用关系数据库(RDBMS)? 我知道他们使用文件系统来存储所有数据,但是您不认为像在网站/ Web应用程序中那样使用数据库会更有效吗? 请详细说明如何通过数据库使用文件系统进行存储。 这与“ 何时应优先使用数据库而不是从文本文件中解析数据”相重复?我仅在操作系统上下文方面进行讨论,而这个问题是笼统的。

10
从微软技术转向Linux,NodeJS和其他开放源代码框架以节省启动资金是否值得?[关闭]
我目前正在参与一家初创公司,我是目前唯一参与其中的开发人员,其他人此刻将所有技术决定权交给我。 对于我的日常工作,我每天在使用Microsoft技术的软件公司工作,我们使用.NET,SqlServer,Windows Server等。但是,我意识到作为一家初创公司,我们需要降低成本,并且简要了解Windows托管的成本我很震惊地看到专用服务器的一些价格。我发现最便宜的是每月100英镑。另外,如果将来业务需要扩展,而我们最终需要多台服务器,则最终可能每年要花掉£000的£10的SQL Server / Windows Server许可费用。 然后,我快速查看了专用服务器的Linux托管价格,发现价格比Windows托管低waaaaaay。一个地方以每月不到20英镑的价格提供一台带有2核的机器。 这让我思考也许要走的路是在Linux上开源。 当我在工作中编写大量Javascript时(目前我正在开发一个单页面主干应用程序),我认为也许NodeJS和类似Express的Web框架可以使用。然后,我以为不是使用SQL,为什么不使用像MongoDB这样的开源NoSQL数据库,它对NodeJS有很好的支持? 我唯一关心的是,应用程序将要进行的一些工作将是动态地构建图像以及其他与图像相关的其他东西,例如,相当占用CPU的东西-所以我正在考虑也许可以用C ++编写任何CPU繁重的东西并将其作为Node中的模块使用。 这就是背景知识-但Linux基本上适合以下方面: 托管NodeJS / Express网站? 编译C ++节点模块? 使用像MongoDB这样的NoSQL DB? 转向这些不熟悉的技术以节省资金是一个好主意吗? 3个月更新 我在过去的几个月里一直在努力,所以我想如果有人感兴趣的话,我会进行更新。 最后,出于时间原因,我决定不使用NodeJS和Linux堆栈。我在一边进行启动,所以我每天工作9个小时,然后回家工作直到启动晚。以这种方式工作时,我显然需要尽可能提高效率,否则我将永远也不会最终交付产品。 在采纳了关于该线程的一些建议之后,我确实申请了Microsoft BizSpark,并被接受。这意味着我现在可以免费使用Visual Studio许可证,Windows Server许可证等。太棒了 希望在我们需要开始支付所有费用时,我们将交还足够多的款项,这将使其不成问题。 但是,不要以为我只是在使用Microsoft技术,因为我尝试了尽可能使用开放源代码的东西。我完成此操作的主要地方是我的数据层,在这里我决定使用PostgreSQL和MongoDB。我还在前端使用BackboneJS。 以下是我当前正在使用的技术/框架的摘要: 标准数据库资料:PostreSQL 日志记录和数据存储:MongoDB ORM:实体框架5 核心程式库:.NET(C#) Web框架:ASP.NET MVC3 UI:Razor视图引擎/ BackboneJS

14
Shell脚本的哪些功能与PHP / Python开发相关?[关闭]
我是一名学习Java和C#(。NET)的PHP / Python程序员。 我的主要开发操作系统是Windows 7,但我使用过Linux,目前与Ubuntu双重引导。但是,我的Linux知识非常有限。我可以在简单的任务上使用命令行,但是仅此而已。我不执行任何shell脚本编写,也不了解许多重要命令。 我的兴趣是网站开发,移动应用程序以及将来的一些嵌入式内容。Shell脚本编写技能是否对这些兴趣有用?如果是,怎么办?

8
Unix和Linux在设计和其他方面有什么基本区别?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 7年前关闭。 我一直在读这句话: Linux是类Unix系统,但不是Unix。 我不知道两者之间的真正区别是什么。我知道Linux从Unix得到了很多想法,并且两者的许可证是不同的。除此之外,由于我都不是其中之一,因此我想知道它们在设计或其他重要方面是否存在基本差异。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.