Mac OS X 和 Linux 大红瓶和博研诗的区别别有哪些

为什么很多硅谷工程师偏爱 OS X,而不是 Linux 或 Windows?_教育指南_百度教育攻略
【伯乐在线导读】:7 月初,伯乐在线推送了《国外程序员的办公桌是什么样的?》这篇文章后,也发起了一次国内程序员晒桌面的活动 →_→ 《国内程序员的办公桌是什么样的?》。来晒图的童鞋中,不管是国内的,还是国外的,很多童鞋是在用 Mac 。精彩内容,尽在百度攻略:所以之前当时也很多童鞋开玩笑说,这简直就是苹果电脑的广告啊。哈哈哈,但我们没收到苹果的一毛广告费啊 [笑cry]后来「程序员的那些事」主页君在 Quora 上看到一个帖子:精彩内容,尽在百度攻略:那位题主还补充说:原本主页君以为这个 Quora 帖子的最 zan 回复会详细列出 Mac 优点的。但是万万没想到,原帖中被 zan 最多的,却是一个偏爱 Linux 的程序员。其他被 zan 比较多的回帖,也偏向 Linux。Mike Mikowski 的回答,2700+ 顶精彩内容,尽在百度攻略:我觉得以上大部分原因跟问题并不相关。图中的这位,显然认为把 Linux 作为自己的首选操作系统,这是个非常好的主意。他就是 Jeff Dean,在过去十年中为 Google 创造了数十亿美元的收入。精彩内容,尽在百度攻略:我们俩的桌面看起来很像:作为硅谷的一名高级架构师,Linux 和 OS X 我都在使用,但 Linux 更适合我。我坚信 Linux 应该被普及。说实话,OS X 在某些方面的确比 Linux 好,但这优势已经越来越小,因为 OS X 的缺陷越来越多了。我相信,当工程师花 2500 美元买了一台 Macbook Retina Pro(16 GB 内存,Intel Iris Pro Graphics 图形处理器 和 AMD Radeon R9 M370X 图形处理器),就会发现 Mac 并没有比 Linux 优秀。随着 Mac 硬件(GPU)进一步落后和软件质量下降,我能预料 Linux 的普及。精彩内容,尽在百度攻略:让 Linux 普及的要点是可定制以及厂家的支持。这将解决硬件兼容性问题,启动时再也不会出现“just some old hardware”的提示。我现在用 System76 的笔记本和台式电脑,他们的电脑和售后非常好。我其中的一台笔记本 Oryx Pro 配置如下:搭载 GSync 技术的 GTX970m 显卡,固态硬盘, i7 处理器,32 GB 内存和 IPS 显示器,一点也不比 Macbook Pro 差。同时,我维护着一份 Kubuntu 下装机必备软件列表,欢迎评论和补充。以下是我为什么用 Linux 开发和个人电脑的原因:1.强劲的 GPU 和 CPU。我的家用电脑和笔记本都配了顶级的显示器和 GPU。Steam 上有 2000 +游戏,我和孩子玩了很多,并且我对 CUDA 和 深度学习很感兴趣。而 Mac 对此就无能为力了。对我来说,强大的 GPU 是非常重要的,所以我配了一台搭载 GTX980Ti 显卡、32 GB 内存、40分辨率的曲面屏、i7 WildDogPro 处理器的电脑。而价格跟 MBP Retina 的价格相差无几。精彩内容,尽在百度攻略:2. 与服务器真正的兼容。我曾工作过的一家公司,半数脚本是用 Linux 脚本和 GNU 工具写的,另一半是 Bash 和 BSD 工具写的,因为这部分开发者坚持用 Mac 开发,并认为 Mac 和 Linux 相差无几。我只想说,这真的太乱了。后来,我花了几周时间重写了代码(为了兼容)。这些人一边说:“Mac OS X 是不同的”,但另一边又说:“Mac OS X 跟 Linux 相差无几”。但事实并不是,Mac OS X 与 Linux 差很多。3. Linux 使我更高效。几乎不需要切换环境,我可以使用相同的工具,专注编写脚本,与服务器无缝衔接。至今,我还没发现哪个 Mac 用户能展现出令我印象深刻的 脚本编写能力。我曾经管理过一个需要超过 100 台以上 Linux 服务器集群的软件,除了 Linux ,其它系统根本胜任不了这个任务。4. Linux 上一切允许正常(Everything just works)。相对那些用 Mac 的同事,我在 Linux 上碰到的问题更少。不需要安装homebrew、fink、MacPorts,只要运行&code&suao apt-get update&/code&和&code&sudo apt-get upgrade&/code&这两个命令就可以了。团队里有少数人还在坚持使用 Mac,他们认为这是一种荣耀。编写脚本和程序设置电脑, Mac 大概要 2-3 天,而 Linux 只要一个小时,而且几乎是全自动化的。精彩内容,尽在百度攻略:5. Linux 能做 Mac 不能做的事。有一天,我们需要超高清分辨率的屏幕截图,在 Linux 上只要输入:&code&$ xrandr --output DP-2.8 -s
--panning &/code&,之后用 Chrome 把图片放大一倍,并用 Ksnapshot 获得所需图片,前后只需要几分钟。谁能在 Mac 或者 Windows 上实现?6. “Linux 上不能运行商业软件”这个争论是毫无意义的,尤其是在硅谷,这里早就不使用微软的 Office 软件了。我使用 Balsamiq 3、Slack、DropBox、Chrome、Hangout、Google 办公套件、GoToMeeting、WebStorm、Skype、Gimp、Insync等软件…对了,在休息时间我会在 Steam 上玩会游戏。所有程序都运行良好,几乎没有应用程序或者系统崩溃。Webstorm(JetBrains IDE)在 Linux 上更友好,同样,NodeJS、MongoDB、MySQL和其它一系列开发工具在 Linux 都比 Mac 友好。KED/Plasma 的界面比 Mac 和 Windows 都友好多了。你问我为什么这么说,因为 KDE/Plasma 我都在使用。精彩内容,尽在百度攻略:这么多开发人员缺乏系统管理和使用脚本的技能,真是一件令人沮丧的事。相对命令行来说,Mac OS X 的图形界面限制了程序员的思考。如果有一天我在硅谷创业,我会把 Linux 当做首选的操作系统。注:CUDA:一种由 NVIDIA 推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。deep learning:深度学习。源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。需要 N 卡支持,而 Macbook 基本上配的都是 Intel 显卡。精彩内容,尽在百度攻略:Garry Taloy 的回答,103 顶GPU:程序员 != 游戏玩家。精彩内容,尽在百度攻略:毫无疑问,配有更快的 GPU 显示效果更好,但除非你是开发游戏或者需要进行 3D 渲染,否则太奢侈了。我自己的两台开发用电脑,都只配备了普通的 Intel 集成显卡。Linux 允许你修改任何文件:我只是一位程序员,我只关心自己的代码,除此之外,别的文件能否修改和编译我并不关心。或许你该问问自己:什么是我真正需要编辑的?我是否有能力去修改文件?我为什么要这么做?精彩内容,尽在百度攻略:在同一个系统下开发更好(代指服务器环境和开发环境相同)首先,这个理由相当不错,但对于 Apache 或者其它什么,在 Mac OS X 上和 Linux 上运行的效果是极其相似的。如果使用诸如 OpenVMS 、 IBM i 或者 z/OS 这些操作系统,那就另当别论了。但是,我敢打赌,在 Mac 上运行网页的效果肯定跟 Linux 是一样的。Expensive:贵实则不然,在相似情况下,一台搭载高清屏、 SSD 固态硬盘 、工业设计都不错的、你听过的牌子的笔记本, Mac 的价格其实并没有贵多少。姑且就说 Mac 贵几百美元吧,但能给程序员支付高薪的公司,并不会吝啬这部分钱。假设 Google 程序员的年薪是 100,000 美元,加上税收和医疗保险、办公空间等额外支出,Google 每年在程序员身上的花费可能会达到 150000 美元。你认为 Google 会在乎多花 300 美元购买 Mac 嘛?精彩内容,尽在百度攻略:这就好像花 10 美元买喜欢的披萨,和话 10.01 美元买你很喜欢的披萨,没多少差别~回答你的问题,就要忽略你说的,因为你说的 99% 与问题无关。Ivan Apple 的回答精彩内容,尽在百度攻略:服务器是运行在 Linux 上的,在 Linux 上开发岂不更好兄弟,你这让我想起这个论点还有价值的年代。想当年,想用 Linux 却没钱买新电脑,唯一的选择就是将 Linux 作为你的主操作系统(学会忍受糟糕的 GUI、应用少等这些不足之处)。如今,通过 VirtualBox,可以很轻松地在 Windows 或 Mac 上安装 Linux 服务器发行版,“在同一个操作系统下开发”就迎刃而解了。精彩内容,尽在百度攻略:最终,学习如何调整 KDE Plasma 和 分析 Wi-Fi 驱动并不会让你成为一个更好的程序员和系统管理员。这只是一个习惯问题,而且是相当无聊的习惯。Linux 允许你修改任何文件这个观点经常出现在争论中。我就说一句话:Ubuntu 和 Red Hat 是现实世界中最流行的 Linux 发行版,而它们可以在 VirtualBox 很好的工作。精彩内容,尽在百度攻略:昂贵但 GPU 性能一般!其实 Mac 并不贵。MB Pro 大概只要 1300 欧元(折合人民币约 9500 元)。而差不多配置 HP 或者 Lenove 笔记本大概要 900 欧元(折合人民币约 6600元)。根据笔记本平均生命周期,购买外形轻薄、耐用(强劲的电池寿命)的 Mac 每个月只要多支付 7 欧元即可。这是一个很划算的投资。你的主力操作系统是哪一个?为什么选用?欢迎大家评论。精彩内容,尽在百度攻略:打赏支持我翻译更多好文章,谢谢!任选一种支付方式查看: 35474|回复: 4
在mac os x上进行嵌入式linux开发[编译linux kernel]
N多年就一直努力着在linux上完成100%的工作,后面果真成功了,还是在一台很菜的PC上用了两年左右,直到后来非得要仿真才回到了MS。最近这几年又开始慢慢地转到MAC下,当然不是工作,而是业余,在家里用,不过也是做和工作很类似的事情,也正朝着可以在MAC上很高效地完成100%的事情。(到目前为止,可能就只有FPGA的活暂时没办法在MAC下用)为什么是linux?为什么是MAC?那是因为喜欢UNIX,喜欢OPEN SOURCE,喜欢MAC,她们都有这样的特点:简单但高效,简单但艺术,也就是KISS。言归正转既然android都可以在MAC上从源码级构建和开发,那么嵌入式linux的构建和开发应该也是OK的吧。好,开工。
环境: mac os x 10.7.5 (macbook pro)
1, sudo port install libelf2, sudo port install gsed3, sudo port install arm-elf-binutils arm-elf-gcc4, sudo port install powerpc-rtems-binutils powerpc-rtems-gcc
如果3,4出错,还可能需要做以下这几步:如果报与libintl.h有头的,就运行以下命令:sudo ln -s /opt/local/include/libintl.h /usr/include/libintl.h此参考:如果报如下所显与toplev.c有关的:toplev.c:574:1: error: redefinition of a 'extern inline' function 'exact_log2' is not supported in C99 mode就使用类似以下命令进行构建安装:sudo port clean powerpc-rtems-gccsudo port install powerpc-rtems-piler=llvm-gcc-4.2参考:
当然你也可以从头开始,自己下载binutils and gcc的源代码进行自己构建【其实port也就是下载源码进行构建的,只是它构建的参数是已经定义好的了】
下来链接一下gcc的命令:sudo ln -s /opt/local/bin/arm-elf-gcc-4.6 /opt/local/bin/arm-elf-gccsudo ln -s /opt/local/bin/powerpc-rtems-gcc-4.2.3 /opt/local/bin/powerpc-rtems-gcc
好,可以开始编译linux kernel了:make ARCH=arm CROSS_COMPILE=arm-elf- menuconfig然后就看到了熟悉的画面了:
Q4.jpg (120.68 KB, 下载次数: 31)
19:10 上传
下来将以TI的DM6467和Freescale的mpc8349itx为例进行编译并测试make ARCH=powerpc CROSS_COMPILE=powerpc-rtems- mpc834x_itx_defconfigmake ARCH=powerpc CROSS_COMPILE=powerpc-rtems-& &(这里不加像uImage的参数是为了得到带dtb的uImage)
编译时会报错:scripts/mod/mk_elfconfig.c:4:17: error: elf.h: No such file or directory这是由于/usr/include目录少了elf.h可以到: 下载下来,然后放到/usr/include下参考:
make ARCH=powerpc CROSS_COMPILE=powerpc-rtems-会出现以下错误:stat: illegal option -- cusage: stat [-FlLnqrsx] [-f format] [-t timefmt] [file ...]make[1]: *** [arch/powerpc/boot/uImage] Error 1make: *** [zImage] Error 2
通过命令grep -nR 'stat -c' * 找到:arch/arm/boot/compressed/Makefile:102:LDFLAGS_vmlinux = --defsym _image_size=$(shell stat -c &%s& $(obj)/../Image)和arch/powerpc/boot/wrapper:265:& & strip_size=$(stat -c %s $vmz.$$)arch/powerpc/boot/wrapper:279:& & strip_size=$(stat -c %s $vmz.$$)这主要是由于linux的stat命令与bsd的stat命令参数不一样,这里主要是得到文件的size编辑上面的文件,把stat -c %s改为stat -f &%z&
然后就是出现如下的错:&mkimage& command not found - U-Boot images will not be builtmake[1]: *** [arch/powerpc/boot/uImage] Error 1make: *** [zImage] Error 2这个就是没有mkimage命令,这个在u-boot里的tools里有编译uboot时使用命令:make tools然后就会在tools下出现了mkimage,把它放到/opt/local/bin就OK了
Oh, Year! powerpc的编译完全通过
ARM的报这样的错:arm-elf-ld: error: arch/arm/boot/compressed/misc.o uses VFP instructions, whereas arch/arm/boot/compressed/vmlinux does notarm-elf-ld: error: arch/arm/boot/compressed/decompress.o uses VFP instructions, whereas arch/arm/boot/compressed/vmlinux does not这个应该是与VFP有关,也就是float了(这个还有待继续研究)
不过vmlinux和Image已经编译通过,那基本没有问题了
[linux-2.6.10_mvl401_LSP_01_30_00_082]make ARCH=arm CROSS_COMPILE=arm-elf- uImage&&CHK& &&&include/linux/version.h&&UPD& &&&include/linux/version.h&&SYMLINK include/asm -& include/asm-arm&&SPLIT& &include/linux/autoconf.h -& include/config/*&&HOSTCC&&scripts/genksyms/genksyms.o&&SHIPPED scripts/genksyms/lex.c&&SHIPPED scripts/genksyms/parse.h&&SHIPPED scripts/genksyms/keywords.c&&HOSTCC&&scripts/genksyms/lex.o&&SHIPPED scripts/genksyms/parse.c&&HOSTCC&&scripts/genksyms/parse.oscripts/genksyms/parse.y:27:20: error: malloc.h: No such file or directory/usr/lib/bison.simple: In function 'yyparse':/usr/lib/bison.simple:361: warning: implicit declaration of function 'free'make[2]: *** [scripts/genksyms/parse.o] Error 1make[1]: *** [scripts/genksyms] Error 2make: *** [scripts] Error 2
编译ubootmake cleanmake ARCH=arm CROSS_COMPILE=arm-elf- davinci_dm646x_configmake ARCH=arm CROSS_COMPILE=arm-elf-
报以下的错,应该是编译.S汇编文件时没通过,这个也有待研究arm-elf-gcc&&-D__ASSEMBLY__ -g&&-Os& &-fno-strict-aliasing&&-fno-common -ffixed-r8 -msoft-float&&-D__KERNEL__ -DTEXT_BASE=0x&&-I/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/local/lib/gcc/arm-elf/4.6.0/include -pipe&&-DCONFIG_ARM -D__ARM__&&-c -o start.o start.S/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include/version_autogenerated.h: Assembler messages:/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include/version_autogenerated.h:1: Error: junk at end of line, first unrecognized character is `-'/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include/version_autogenerated.h:2: Error: junk at end of line, first unrecognized character is `-'/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include/version_autogenerated.h:3: Error: junk at end of line, first unrecognized character is `-'/Users/fi9/my-projects/linux/dm6467/u-boot-1.2.0_dvs/include/version_autogenerated.h:4: Error: junk at end of line, first unrecognized character is `&'make[1]: *** [start.o] Error 1make: *** [cpu/arm926ejs/start.o] Error 2
打开tftpd服务:sudo netstat -a | grep tftpsudo launchctl load -wF /System/Library/LaunchDaemons/tftp.plist sudo netstat -a | grep tftp参考:
把文件放到/priveta/tftpboot然后板子就可以通过tftp下载了
安装minicom
sudo port install minicom
如此就可以使用minicom了,哈,很像ubuntu或debian吧?
到此为止,powerpc的板子经过编译的kernel,然后再经过tftpd server和minicom,完全可以在mac os x上进行所有相关工作了,而且让powerpc跑起了2.6.3x和3.5.x的linux kernel,比原来的2.6.13高级了很多,现在可以用V4L2进行一些相关的工作了,以前的可是V4L1,版本太低了
除了linux kernel外,还有通用的uboot, busybox,这下一步补充完成吧,当然还有很我的其它软件移植和应用程序的开发(仿真器就算了吧)
大哥,你解决了我一个很大的问题,我一直在想如何在mac下编译出elf,开始还以为可以通过gcc参数来配置,现在才知道得用arm elf&&gcc
按照你的步骤,我 make menuconfig的时候出现了&&HOSTLD&&scripts/kconfig/mconf Undefined symbols for architecture x86_64:& &的错误
HOSTLD&&scripts/kconfig/mconf
Undefined symbols for architecture x86_64:
&&&_acs_map&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_print_arrows in checklist.o
& && &_dialog_clear in util.o
& && &_draw_box in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_dialog_yesno in yesno.o
&&&_cbreak&, referenced from:
& && &_init_dialog in util.o
&&&_delwin&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_dialog_yesno in yesno.o
& && &_dialog_menu in menubox.o
&&&_doupdate&, referenced from:
& && &_dialog_checklist in checklist.o
&&&_endwin&, referenced from:
& && &_init_dialog in util.o
& && &_end_dialog in util.o
&&&_flash&, referenced from:
& && &_dialog_inputbox in inputbox.o
&&&_getcurx&, referenced from:
& && &_init_dialog in util.o
& && &_print_autowrap in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_print_arrows in menubox.o
&&&_getcury&, referenced from:
& && &_init_dialog in util.o
& && &_print_autowrap in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_print_arrows in menubox.o
&&&_getmaxx&, referenced from:
& && &_conf in mconf.o
& && &_dialog_checklist in checklist.o
& && &_dialog_clear in util.o
& && &_init_dialog in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_refresh_text_box in textbox.o
&&&_getmaxy&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_attr_clear in util.o
& && &_dialog_clear in util.o
& && &_init_dialog in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_refresh_text_box in textbox.o
&&&_has_colors&, referenced from:
& && &_init_dialog in util.o
& && &_draw_shadow in util.o
&&&_init_pair&, referenced from:
& && &_init_dialog in util.o
&&&_initscr&, referenced from:
& && &_init_dialog in util.o
&&&_keypad&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_init_dialog in util.o
& && &_on_key_esc in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_dialog_yesno in yesno.o
& && &_dialog_menu in menubox.o
&&&_newwin&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_dialog_yesno in yesno.o
& && &_dialog_menu in menubox.o
&&&_nodelay&, referenced from:
& && &_on_key_esc in util.o
&&&_noecho&, referenced from:
& && &_init_dialog in util.o
&&&_scrollok&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_menu in menubox.o
&&&_start_color&, referenced from:
& && &_init_dialog in util.o
&&&_stdscr&, referenced from:
& && &_conf in mconf.o
& && &_dialog_checklist in checklist.o
& && &_dialog_clear in util.o
& && &_init_dialog in util.o
& && &_end_dialog in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
&&&_subwin&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_textbox in textbox.o
& && &_dialog_menu in menubox.o
&&&_ungetch&, referenced from:
& && &_on_key_esc in util.o
&&&_waddch&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_print_item in checklist.o
& && &_print_arrows in checklist.o
& && &_attr_clear in util.o
& && &_dialog_clear in util.o
& && &_print_title in util.o
& && &_print_button in util.o
&&&_waddnstr&, referenced from:
& && &_print_item in checklist.o
& && &_print_arrows in checklist.o
& && &_dialog_clear in util.o
& && &_print_title in util.o
& && &_print_autowrap in util.o
& && &_print_button in util.o
& && &_dialog_inputbox in inputbox.o
&&&_wattrset&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_print_item in checklist.o
& && &_print_arrows in checklist.o
& && &_attr_clear in util.o
& && &_dialog_clear in util.o
& && &_print_title in util.o
& && &_print_button in util.o
&&&_wbkgdset&, referenced from:
& && &_dialog_textbox in textbox.o
& && &_refresh_text_box in textbox.o
& && &_dialog_menu in menubox.o
&&&_wclrtoeol&, referenced from:
& && &_refresh_text_box in textbox.o
& && &_do_print_item in menubox.o
&&&_wgetch&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_on_key_esc in util.o
& && &_dialog_inputbox in inputbox.o
& && &_dialog_textbox in textbox.o
& && &_dialog_yesno in yesno.o
& && &_dialog_menu in menubox.o
&&&_winch&, referenced from:
& && &_draw_shadow in util.o
&&&_wmove&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_print_item in checklist.o
& && &_print_arrows in checklist.o
& && &_attr_clear in util.o
& && &_dialog_clear in util.o
& && &_end_dialog in util.o
& && &_print_title in util.o
&&&_wnoutrefresh&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_clear in util.o
& && &_draw_shadow in util.o
& && &_dialog_textbox in textbox.o
& && &_refresh_text_box in textbox.o
& && &_dialog_menu in menubox.o
&&&_wprintw&, referenced from:
& && &_print_item in checklist.o
& && &_refresh_text_box in textbox.o
&&&_wrefresh&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_print_item in checklist.o
& && &_end_dialog in util.o
& && &_dialog_inputbox in inputbox.o
& && &_refresh_text_box in textbox.o
& && &_dialog_yesno in yesno.o
& && &_dialog_menu in menubox.o
&&&_wscrl&, referenced from:
& && &_dialog_checklist in checklist.o
& && &_dialog_menu in menubox.o
&&&_wtouchln&, referenced from:
& && &_attr_clear in util.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [scripts/kconfig/mconf] Error 1
make: *** [menuconfig] Error 2
HOSTLD&&scripts/kconfig/mconf
Undefined symbols for architecture x86_64:
&&&_acs_map&, referenced ...
首先删除 scripts/kconfig/mconf.o
修改 scripts/kconfig/lxdialog/check-lxdialog.sh 中 ldflags 如下:
# What library to link
& && &&&for lib in ncur do
& && && && &$cc -print-file-name=lib${lib}.${ext} | grep -q /
& && && && &if [ $? -eq 0 ]; then
& && && && && & echo &-l${lib}&
& && && && && & exit
& && && && &fi
& && &&&done
& && &&&# ===== fix start =====
& && &&&for lib in ncur do
& && && && &if [ -f /usr/lib/lib${lib}.${ext} ]; then
& && && && && & echo &-l${lib}&
& && && && && & exit
& && && && &fi
& && &&&done
& && &&&# ===== fix end =====
& & exit 1
最后,重新 make menuconfig
如果上述方法不行,可以用 make nconfig
Powered by为什么 Mac 用户不选择 Linux
-22%-39%-55%-71%-85%
Linux 与 Mac 用户至少有一个共同点:他们都不太喜欢用 Windows。但除了这点外,二者再也无法达成其他共识,只得分道扬镳。为什么 Mac 用户不选择 Linux 呢?是什么因素致使 Mac 用户做出了这种选择的?
,并试图进行解答。Datamation 的结论是,所有原因都只归结于众多应用及工作流程,而非操作系统的关系:
&某些事例表明,尝试用新应用代替现有应用,并不是很实际 - 对工作流程和整体实用性来说都是如此。但不幸的是,苹果在这些方面做得非常好。因此,在几乎不可能改变这些事实的情况下,想要拉拢那些 Mac 忠实用户实在是很大的挑战。
不过老实来说,除了 Web 开发者,我还没见过 Mac 用户仅仅为了避免升级到 OS X Yosemite 而 & en masse&(法语:共同,一起) 尝试变更他们的工作流程。诚然,经历过 Yosemite 更新后 - 考虑过权限的用户应该会发现这方面已经变得非常令人讨厌。并且,OS X 除了在 UI 方面的微小变化,几乎没有改变,针对现有 Mac 用户的核心工作流程也在最大程度上保持了原样。
但,我相信 Linux 在未来将会继续保持多样化特点。Linux 会继续成长,但绝不是经过精确计量般得一成不变。
我大体上同意 Datamation 关于应用和工作流程重要性的结论,在选择操作系统时这两方面是必须要考虑顾及的。但我认为对 Mac 用户来说,选择 Mac 有比这两方面更重要的因素。我相信是不同的心态造就了 Linux 和 Mac 用户,并且我认为这才是为什么 Mac 用户不选择 Linux 的真实原因。
控制权才是 Linux 用户最看重的地方
Linux 用户倾向于控制电脑上的所有细节,他们试图作出一切能做的努力使操作系统变成他们想要的样子。但这种方式并不适用于 OS X 以及其他任何苹果的产品。如果你使用了苹果的产品,就意味着绝大多数情况下,你只能按照苹果预先设定的模式来使用它们。
对 Mac(以及 iOS)用户来说这没什么,因为他们似乎并不在乎生活在苹果那围墙高筑的花园里,仅仅使用那些苹果给予他们的标准和选择。但这对绝大多数 Linux 用户来说是完全不能接受的。Linux 的新用户通常来自 Windows,正是从那里,他们开始厌恶那些告诉他们什么才叫操作系统,并试图限制操作系统权限的东西。
自从他们尝到使用自由的 Linux 系统所带来的甜头之后,他们就再也不会回到苹果或者微软的监牢里去了。即使在他们死后,把 Linux 从他们那冰冷僵硬的手指中撬出来,他们也不会接受苹果和微软为他们定制的操作系统。
但绝大部分 Mac 用户不会有这样的意志和决心。对他们来说当苹果升级 OS X 时放弃他们现有的习惯方式是非常容易的。在苹果那围墙高筑的花园里,即使他们不满意苹果的变化,他们也会迅速地接受。
因此,对控制权的渴望是 Mac 用户与 Linux 用户的最大不同。但我并未把它视为一个问题,尽管这反映出使用电脑的两类用户截然不同的态度。
Mac 用户离不开苹果的技术支持
Linux 用户与 Mac 用户的区别也体现在 Linux 用户并不介意亲自维护自己的电脑。虽然维护电脑及控制操作系统都是很大的责任,但 Linux 用户还是愿意独自承担,愿意通过自己的力量使他们的系统工作得更棒更有效率,并且深入了解操作系统是每一位 Linux 用户都乐衷的事情。
当 Linux 用户遇到问题时,他们会迅速地尝试自己来解决问题。如果这不奏效的话,他们会在网上搜索其他Linux用户的解决方案,并不断进行尝试,直到问题解决。
但 Mac 用户却不大会这样。这也许是为什么苹果零售店如此火爆、为什么如此多的 Mac 用户在拿到新 Mac 的时候会选择购买苹果维护服务的原因。Mac 用户会很轻易得带着 TA 的电脑去苹果零售店,走进天才吧并要求苹果的工作人员为其查看和修复电脑。
绝大多数 Linux 用户连想都不会想这种事情。谁会愿意让一个你都不认识的家伙碰你的电脑并维修它呢?
因此对 Mac 用户来说,很难抛弃过去可以从苹果那里得到的技术支持,转而使用 Linux。这种选择会令某些 Mac 用户觉得自己的电脑将变得非常脆弱、容易被攻击,他们如同离开母亲怀抱的婴儿般充满了无助感。
Mac 用户喜爱苹果的硬件
Datamation 发表的文章中主要研究了软件方面的原因,但我认为硬件因素同样对 Mac 用户有很大影响。绝大部分 Mac 用户非常喜爱苹果的硬件。TA 们购买 Mac 并不仅仅是为了 OS X。苹果那精美的工艺设计也是 Mac 用户购买时着重考虑的一点。Mac 用户愿意支付高价购买电脑,因为他们认为这样绝对是物有所值的。
另一方面,Linux 用户似乎并不会考虑这些东西。我认为他们更关注电脑的花费,而不太在意电脑的外观和设计。对他们来说,花费最少的金钱来获取尽可能好的硬件才是最重要的。他们并不像 Mac 用户一样热衷于电脑的外观,因此这一点并不是他们在购买电脑时考虑的地方。
我认为对于硬件的两种不同观点是没有高低之分的。这仅仅和用户的不同需求有关,仅仅会在他们购买电脑时影响他们,或者对某些 Linux 用户来说只是因为他们想要自己组装电脑而已。两种观点只是因为出发点不同、对于电脑的真正价值体现所在之处的理解不同罢了。
当然,直接运行或者间接地通过虚拟机运行。因此真心喜欢苹果硬件的 Mac 用户是可以选择在 Mac 上安装 Linux 的。
Linux 发行版太多了不知道选哪个?
另一个让 Mac 用户无法选择 Linux 的原因是:要从众多 Linux 发行版当中选择一个实在是太困难了。在大多数 Linuxer 并不抗拒的多元化发行版时代,没有相关知识的 Mac 用户会对如何选择感到十分困惑。
我认为,随着时间的推移,Mac 用户可以学习并找出最适合自己的发行版。但在短时间内,尤其是长时期得使用 OS X 之后,这是一个艰巨的任务。我不认为这个问题是无法克服的,但却有必要在这里提一下。
当然我们可以给大家提供资源,推荐参考&&还有我们的博客&,这都有助于 Mac 用户找到适合的 Linux 发行版。再说一条,网上有很多诸如&最好的 Linux 发行版&等类似的文章,当 Mac 用户想要寻找适合自己使用的发行版时可以参考一下。
但有苹果顾客购买 Mac 的其中一个原因是苹果硬件软件协调统一起来的简便性和易用性。所以我不确定有多少 Mac 用户愿意花费时间找出适合自己的 Linux 发行版。也许是否要使用 Linux 确实会令TA们考虑一阵子了。
Mac 用户是苹果,Linux 用户是橘子
Mac 用户与 Linux 用户分道扬镳我认为并没有什么不妥。我认为我们只是在谈论两类完全不同的人群,这是一件好事,因为两类人群都在按自己喜欢的方式去使用操作系统和软件。让 Mac 用户和 Linux 用户各自沉浸在 OS X 和 Linux 中吧,希望他们都能高兴,都能对自己的电脑满意。
也许 Mac 用户会偶然走入 Linux 的世界并开始转向 Linux,但我认为绝大多数时候,两类人都愿意呆在不同的世界并不与对方接触。通常来说我并不会随意比较二者,尤其是你已经自己拿定主意的时候,况且这只不过是选苹果还是选橘子的问题罢了。
作者:&译者:&校对:
本文由&&原创翻译,&荣誉推出
上一篇:下一篇:
评论功能关闭
根据国家法律法规要求,本站暂时关闭文章评论功能。开放时间不确定。我们将谋求一种可以让大家更好的发表意见的方式。
根据国家法律法规要求,只有实名认证后才可以发表评论。
来自 - 河北石家庄 的 Safari/Mac 用户 发表于
09:34 的评论:
Mac是类unix系统,有了root权限也可以干很多事,与linux无异,windows用户大多才是真正的对电脑一窍不通。而Mac有这两者的优点:当作黑箱使用可以提高工作效率(windows),拥有root权限可以随意更改系统(linux)。我不明白使用linux的人的优越感是从哪里来的。
来自北京的 Firefox 49.0|FreeBSD 用户
Mac 有了 root 权限可以干任何事,但是方便程度与在 Unix/linux 下不可同日而语,因为 MAC 不是被设计成这么用的,所以并不是与 Linux 无异,有点类似于标准山地车与普通城市车在定制性上的差别,虽然只要工具足够的话两者同样都能改装,或许你只是想象过有了 ROOT 权限后能在 MAC 上做什么而没有真正尝试这么做过。
Linux 与 Mac 用户至少有一个共同点:他们都不太喜欢用 Windows。但除了这点外,二者再也无法达成其他共识,只得分道扬镳。为什么 Mac 用户不选择 Linux 呢?是什么因素致使 Mac 用户做出了这种选择的?
Datamation 就此问题做了一番调查,并试图进行解答。Datamation 的结论是,所有原因都只归结于众多应用及工作流程,而非操作系统的关系:
分享到微信
打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。
请将我们加入您的广告过滤器的白名单,请支持开源站点。谢谢您。}

我要回帖

更多关于 32位和64位的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信