Threads created by the user in a 1:1 correspondence with schedulable entities in the kernel[10] are the simplest possible threading implementation. OS/2 and Win32 used this approach from the start, while on Linux the usual C library implements this approach (via the NPTL or older LinuxThreads). This approach is also used by Solaris, NetBSD, FreeBSD, OS X, and iOS.
FreeBSD has supported Linux compatibility for many years and, purportedly, can run some Linux applications faster than Linux itself so FreeBSD has always been miles ahead.
I don't think Windows had anything to do with this. I think the feature has been in development since before and it is released because it's what users want, not because of what Microsoft are doing.
Initial Linux64 support landed in FreeBSD11 on 2015-05-24. The code freeze for the 10.2 release started on 2015-07-03.
Those 5'ish weeks was simply not enough time to get such a major addition sufficiently settled down for inclusion in the stable release branch. As such, it is now part of 10.3R.
Wow! Thanks for pointing this out! I had no idea it was coming so soon. I'm so excited to upgrade. This is particularly useful for some niche compilers (like Poly/ML) who have special features for only linux-x86_64.
Actually, I may have gotten my facts mixed up. It is Golang that only supports some compiling features on linux-x86 like shared object libraries or something along those lines. I can't remember off the top of my head and I can't seem to find what I'm looking for.
Going by the compat.linux.osrelease sysctl, it is currently providing the kernel interface of Linux kernel version 2.6.32 (the one that ships with RHEL6). Similarly, the GNU userland that can be installed is based on CentOS6.
So, if your application requires newer kernel interfaces that were introduced in 3.x or 4.x, it will not work.
An Honest question, which of the large Startup / Internet Giant are using BSD? Whether it is FreeBSD or OpenBSD or others.
Judging from some previous Facebook post, it is likely Whatsapp will be moving to linux based as well instead of on FreeBSD. Yahoo used to be a FreeBSD shop, but Marisa Mayer has since converted all to Linux. Microsoft had some FreeBSD long ago but has since converted all to Windows or Linux. The only FreeBSD on Netflix are their Open Connect Appliance, their main AWS instances, which is the majority of their servers are all Linux. Both Cisco and Juniper are using less FreeBSD as we speak. Even Apple, with many parts of their OS based on FreeBSD, are using Linux for iCloud as well.
Where did you see that WhatsApp is converting to Linux? At MeetBSD Rick Reed claimed they had full autonomy from Facebook on that kind of thing (http://www.slideshare.net/iXsystems/rick-reed-600-m-unsuspec...), and FB was looking at them to learn how they did so much with so little engineers and servers.
Netflix is doing 100Gbit HTTP and > 60Gbit HTTPS on a single socket Xeon E5 with FreeBSD. These servers are about 1/3 North American Internet by volume. In comparison to OCA team their AWS team sounds like a total tire fire to me in terms of engineer count and monthly spend.
I run the OS team at Limelight Networks, one of the largest CDNs. We can peak beyond 10Tbit/s on our current network and have to deal with a more demanding/unknown workload compared to NF OCA. This is all courtesy of FreeBSD. My entire management chain agrees that the cost of entry is lower to influencing and driving development in FreeBSD vs other kernels, and we collaborate with the other well known players on projects that are mutually beneficial such as TCP and filesystems.
Companies switching from FreeBSD to Linux usually are victim of the decision from bad VP-level management looking for a scapegoat rather than solving actual business and culture problems. Yahoo began transitioning to RHEL in 2005 and AFAIK are still at least two years from conceivably being off of FreeBSD. A 12 year _free_ OS transition is an embarrassing use of engineering effort and total management failure.
There are a lot of companies satisfied with FreeBSD, especially in the appliance space and small business, but they are not vocal because it just works and is often rebranded.
Based on your HN username, you're probably not the guy who did the presentation at BSDCan 2015 on the topic of "FreeBSD Operations at Limelight Networks, An Overview of Operating at Internet Scale". Regardless, that was a good and influential presentation, worth the time to google and watch.
I think that specific presentation would answer a lot of OPs questions, probably faster and more accurately than a web discussion board. I got a lot of good ideas from that presentation about freebsd deployment at my workplace. Specifically I seem to recall something along the lines of, its 2016 so start using zabbix instead of nagios, which was pretty good advice, or at least its been interesting to experiment with so far.
I'd extend the remarks from the presentation that much as its possible to write Perl in any language, its possible to do everything linux-style but with a freebsd kernel, whereas the real benefits grow when things start smelling more freebsd-ish and less linux-ish. For example the *bsds are much closer to the proven successful unix philosophy of architecture and design, whereas the linuxes in general have been slowly generally moving away from that successful architecture.
I'd throw out a semi-dissenting opinion that freebsd use is much like whiteboard algo interview questions... even if it has nothing to do with the job or problem, the folks who can do it, are of a class above the folks who can't, so naturally the average freebsd admin being considerably more inherently skilled than the average linux admin results in freebsd deployments requiring 1/10th the number of sysadmin-hours etc etc. There are actual technical improvements and architectural benefits to freebsd, but the main contributor of the often reported 10x benefit to freebsd is the skill, experience, and raw horsepower of the generally superior users. If freebsd were as popular as linux, that would disappear and freebsd users would only be maybe 2x as productive as linux instead of the existing 10x figures. Naturally the guy writing a playbook for ansible will be much more productive than the guy trying to use the gnome GUI to do sysadmin-ish stuff, but there's nothing inherently bsd-ish or linux-ish about it.
(edited to add, yes, i336_, that is exactly the video I recommend)
Most interesting, thanks for commenting. This phrase caught my eye...
"My entire management chain agrees that the cost of entry is lower to influencing and driving development in FreeBSD vs other kernels [...]"
Is that simply a reflection of the smaller size of the FreeBSD project or does it stem from the 'tight core' model where the kernel and base system are co-developed?
Facebook advertised "write your own ticket" not so long ago for Linux kernel developers. You are guaranteed to be going up against Google if you want Linux kernel talent that has significant influence. Xref Dan Luu's http://danluu.com/startup-tradeoffs/ and multiply by 2 to see how much that will cost you. This kind of thing even lures ardent FreeBSD people away, for instance Justin Gibbs, President and Founder of The FreeBSD Foundation currently works at Facebook.. there are many other BSD people stuck in the Borg too.
Aside from that, the tight core and stable ABIs and KPIs are much nicer to base things like an appliance off of that may have a long development and longer support lifecycle on. I do some firmware hacking and analysis sometimes for fun, and Linux firmware are always abhorrent in terms of security, quality, license compliance. IBM's disk storage subsystems as one example. I really can't fathom why anyone would base a closed source product on Linux other than wanton incompetence, and I'm not throwing that with tongue in cheek nor lightheartedly.
That may start to get rough with MFCs as the branch petrifies, but yes it should fall within the same crosschecked two engineer budget for a reasonable time span. You should seek commit bits to maintain said branches if you rely on them, because you're probably not alone.
It certainly adds a certain amount of certainty to the planning process. Right now, I'm running off 11.0-CURRENT in preparation for a deployment or around August 2016, which gives me certainty of support until mid-2021.
Are you doing HW that is frozen in time? I would suggest that many things should be branch rebased roughly every two years unless there are extreme circumstances. I think EMC Isilon has recently realized this as example.
> Netflix is doing 100Gbit HTTP and > 60Gbit HTTPS on a single socket Xeon E5 with FreeBSD. These servers are about 1/3 North American Internet by volume. In comparison to OCA team their AWS team sounds like a total tire fire to me in terms of engineer count and monthly spend.
Have any idea how many cores and what kind of network hardware they use push those impressive figures? I would guess there is some network offload involved, as this comparable to memory bandwidth of a single core of that Xeon if I'm not mistaken.
For those numbers, it was around 18 real cores with hyper threading enabled. Crypto is a great workload for hyper threads. These systems are currently being built up and aren't yet in production. These are with last year's CPUs.
Thx, I cant edit my original post, but my intention / worry was if FreeBSD get enough cooperate usage that is being sustainable in the long term future. Looks like it is doing fine for now.
Off-Topic: No idea why Limelight fell off my CDN radar long time ago, ( I got focused on EdgeCast instead ), since Limelight seems not want to list their price in /GB pricing ( Likely an Enterprise Only Strategy ), any chance for a different sub brand that offer something similar to CDN in pay per use cases?
As far as I understand, we are more handshake deal based. A lot of our traffic is special events where a customer blows up the Internet for a day and needs a lot of help in mitigating problems from that.
Honestly, meh. I was moderately early to the Linux game (1998) and bandwagon really didn't do proportional good. I use FreeBSD because I can understand and influence it.
Netflix delivers all video streaming content via FreeBSD which makes up 37% of all internet traffic. https://openconnect.itp.netflix.com/software/ They also contribute to FreeBSD core. It is not just an "appliance" as some people seem to want to point to.
PS3 did—I believe PS4 is not nearly as heavily modified[1]. It is certainly locked down though, at least after the early PS3s where you could, say, install Linux and build a HPC cluster[2].
1. Mostly from people who've hacked it; https://cturt.github.io/ps4.html seems to suggest it's a relatively stock FreeBSD kernel with some added system calls and a possibly heavily modified NetBSD userland.
Honest question though: Does the popularity of an OS really tell us anything useful? I often use the "if it's popular, it's probably good" metric, but I know I am just being lazy...
As a curiosity, knowing the "rank" of an OS is interesting, but if I am making any important decisions, I research the OS myself, hopefully disregarding outside influences.
I am not really concern about popularity, but the development side of it. Or, can the current size of usage / ecosystem be sustainable for FreeBSD long term development? Cooperate usage will at least paid for the development in Linux, I was just worried FreeBSD usage is shrinking because of this.
You will find FreeBSD inside every major internet giant, it is not used for everything but for corner issues where FreeBSD is better than for example Linux. There are many examples, one is that the Linux kernel VM system is not performing as well when memory is over-committed.
But it's not just software giants, a surprising number of hardware devices and companies use BSD too. I'd bet neither your self-driving car nor your doctor's medical devices run linux. The CDN you're reading this from... probably not linux either and probably not the routers sending the traffic either. Your cell phone GSM network isn't running atop a linux distro.
Idle question sort-of-related but I'm asking it here because those who know the answer will be here:
The bge(4) driver by default doesn't support WoL, but a number of people have managed to take the driver from FreeNAS 9.x which includes a patched driver that does make it work and added it to FreeBSD 9.x. This was released as a .patch file so you could patch the driver and recompile and is of interest because it's the onboard NIC for the HP Proliant microservers that many people use for their own custom file storage servers.
The upgrade from 9 to 10 broke this patch because the lines changed too dramatically, but you can easily copy/paste it in to the driver source at the right places and it works (I did it on 10.1 or 10.2).
My question is: Specifically what process does one need to go through to provide a patched bge(4) driver to 'the appropriate people' so that the patch is included in FreeBSD's default driver and is not broken with each major change to the driver? How does one go from 'we have functioning code that enables WoL support' to 'this is a tested, certified driver included in the default FreeBSD install'? What licensing issues are there in contributing the patch upstream from FreeNAS to FreeBSD?
This is all new territory for me, so some guidance would be greatly appreciated!
If you've done that already, or after you've waited a few weeks without anyone noticing it, the usual tactic is to email people who have worked on the driver in question recently; the SVN logs are useful here: https://svnweb.freebsd.org/base/head/sys/dev/bge/if_bge.c?vi...
Feel free to send me an email if you need more help.
If I got the patched file that I made for 10.x, got it working again, generated a patch and threw it up as a gist would that help you?
I would struggle to trace the steps where I got the file initially; I'll see what I can do. Basically, trying to make heads or tails of the licensing issues surrounding it, especially given the fact that I don't remember many of the sources, is where I struggle to know what to do to do the 'right' thing.
Yeah, I shouldn't have posted the flippant comment. Sorry. I've posted the bug tracker links in another comment - looks like there's some concerns about the effects of the patch on high-end networking gear.
Sorry. I was in a bad mood and it seemed like the user was going to be hard to track down. I hate those old forums that make you sign in before you can download attached files, and loose patch files floating around remind me why Git isn't all that bad.
I know FreeBSD (or *BSD in general) is still used heavily in server environments.
Is anyone using it on the desktop as well?
I always wanted to give it a try, but then I'm hesitant because of lacking hardware support. I remember struggling with Intel KMS support in one of the earlier releases. Is this still a problem?
I run FreeBSD -CURRENT on a Lenovo C30, which is a dual Xeon E5 workstation platform. Key to my use for the past 1-2 years with a 30" and 3 24" monitors is the nvidia binary video driver. Prior to this setup I ran Gentoo. I find FreeBSD more conductive toward the things I want to work on, but I am also much more interested in working on FreeBSD src than I was Linux kernel. I maintain a small repo that does everything I want at https://github.com/kev009/digital-life
On my laptop, a Lenovo T420, I run PC-BSD -CURRENT (http://iso.cdn.pcbsd.org/11.0-CURRENTMAR2016/edge/amd64/), which eliminates the need to build src and packages. I also run PC-BSD -CURRENT on my work desktop with a Radeon card and two monitors. I could potentially expand my workstation builds to these with pkg, but PC-BSD is more or less hands off which I want on these devices.
Open source video needs work, but as of this week that has started heating up and we may start closing in toward DragonflyBSD in terms of Freedesktop/Linux equivalence by the time FreeBSD 11.0 ships https://github.com/iotamudelta/freebsd-base-graphics/tree/dr...
I've an elderly Asus notebook nowadays as my PC, with 10.2 on it that I installed rather recently. It's battery is long-dead (I use it as a workstation mostly), so I can't comment on that, but suspend/hibernate does not work for me. FreeBSD does not have hibernate, and suspend, AFAIK, does not work with Xorg, so it's practically useless. There are some posts that demo how to do it, by unloading troublesome stuff before suspend and reloading them later, but I didn't get around to trying that yet, because suspend does not resume, and hard reboots give me the shakes without a backup, I couldn't port my backup script to't yet.
Performance-wise, I did not notice much between Arch linux, what I was using before, and this. My setup is very light, Emacs+Xombrero on TWM. I notice, though, a certain performance problem with video in browser, but that may well be Gstreamer plugins that run slower than Linux on *BSD, I can't comment, as I don't know the internals. But VLC works just fine.
Running it on a laptop is a bit of a science project still, if you want a seamless experience it's not really there, but it can be done. At this point you can use up to Haswell intel graphics with suspend/resume.
I run it as a desktop OS on a Lenovo G700 and those all work fine.
Hardware support isn't as complete as Linux but it isn't bad at all either. Chances are anything that's older than 2-3 years will work out of the box, anything newer may or may not require a little tinkering.
I only recently got myself a used ThinkPad X220 that is now running PC-BSD. I tried a stock FreeBSD 10.2 first and could not get suspend/resume to work properly, so I tried PC-BSD, where suspend/resume works; then again the latest PC-BSD is based on FreeBSD 10.3, so a stock FreeBSD 10.3 might have worked as well; but now I am too lazy to re-install.
Otherwise the hardware is supported very nicely. Only scroll support for the trackpoint was a bit of a pain to get working.
I run FreeBSD on my workstation since 2004 and am at 10.3-RELEASE right now. I'm a web developer and run several VMs, different browsers, all development work including graphics, as does the staff of ten at my office.
FreeBSD has no issues with any of the high end hardware we run and the oldest to newest hardware we have is one to three years old.
I use FreeBSD on my personal laptop. I picked up an X230 used on eBay and upgraded it so that it has 2x256GB SSDs in a ZFS mirror and 16GB of RAM. More than enough horsepower to do anything I need, and FreeBSD ensures that it's used most efficiently.
Much like many people on HN, I suspect, I do most of my work /and/ my play at the command line. Once you're there for a significant amount of your time you begin to get a respect for tight integration in the BSD base system and the superb documentation which is included. Because of the docs, I can reasonably work in an environment where I have no Internet access for an extended period of time without feeling like I'm suffering. In the Linux world, I find myself spending more time looking things up on search engines and less times looking things up in the manual. This simply isn't the case with FreeBSD, which means I'm less tied to being online and more tied to getting stuff done.
YMMV but I love FreeBSD as a desktop/laptop OS. I know many people also use OpenBSD on laptops because of superior driver support for some hardware, but the Linux emulation in FreeBSD allows me to guarantee no matter what I'm trying to do it will work, so I stick to FreeBSD vs OpenBSD for my uses.
I want to run the same OS on my desktops as my servers to minimize expensive brain context switching, so I'm not into the pc-bsd concept, however, numerous people recommended it as a desktop flavor of freebsd. You MIGHT have better luck with hardware drivers or software integration on pc-bsd, if you have problems with freebsd. Maybe. Think of it like freebsd is to pc-bsd as debian is to ubuntu, sorta.
As for my non-significant problems, there was some weirdness with haskell and long term (days, weeks) stability of xmonad, so I switched over to awesome as my window manager with an identical keyboard layout.
I have no experience with desktop environments on freebsd on my desktops... no interest. I need something that switches between emacs, terminal, and browser, that's the total extent of my environment. I'm told freebsd can run KDE and Gnome, although I don't want them. I point this out because some people define desktop by hardware, or by end user use, or others define that word as "runs gnome", and I can only verify the first two definitions.
I used FreeBSD exclusively for a some months on my primary laptop, a Lenovo Ideapad. I never did get wifi working properly (I believe support for my chip is in 10.3 or 11.0) so I had to buy a ten dollar dongle. FreeBSD does not support integrated graphics. I think I got around this by disabling one of the graphics cards. But I'm not certain. I also couldn't get power management or sleep mode working. So I got used to shutting down every time I put it away.
My work now has me using OS X, but I keep the FreeBSD machine on a vpn because I love working on it. If you're thinking about, I'd highly recommend looking into the FreeBSD and OpenBSD support for your laptop. Otherwise just buy an x220.
Yes, I'm using FreeBSD on my netbook. I tried some Linux distros there, but they were too slow. My netbook came with Fedora, where yum was terribly lagging, it was taking even 40minutes to upgrade 20pacakges (what happened weekly), I tried Debian with LXDE, it was faster, but I wasn't able to watch youtube, video was lagging on 460p. GF was using it as portable PC to listen to podcasts etc, but starting any application like firefox, thunderbird or clementine was taking way too long. When Debian switched to systemD, I decided to give FreeBSD a try after 10 years with Debian/Arch and CentOS on server. I was impressed that command line installation of FreeBSD was simpler than Manjaro with GUI. Honestly, application startup of Firefox, Thunderbid was much quicker, youtube videos work with 720p (nearly full screen of the netbook :D). I had some problems setting up my dev environment there, like Qt5 is said to work out of box, but I had to make some manual fixes to get it working system-wide. Setup of Xorg and SLIM was something different than SDDM on ArchLinux.
I don't know about Intel KMS, I use FreeBSD on portable netbook and my work-station (Dell laptop - came with Ubuntu) and everything is superb. You will need to dig some stuff like rc.conf, but documentation is very clear and once you modified it, you're 100% that it will work after reboot. I still don't remember and know from memory how to enable acpi support on Linux (backlight control on laptops, it worked out of box on both laptops on BSD). if you don't have much time to read about it, install bsdconfig from ports it's a nice command line application that helps you select necessary features of the system.
If anything, it's definitely worth giving BSD a try just to get some new experience! I'm also highly impressed with DragonFlyBSD, worth reading their documentation to learn that BSD systems are ahead of Linux when it comes to security and system design.
I'm a first time user of FreeBSD, I jumped in on 10.3RC2 and ended up with a "custom" kernel to enable vnet support. How do I upgrade and keep the custom kernel in-tact?
Sorry for this pain point :( we will hopefully have VNET default in 11.0.
Slightly risky way: you can run freebsd-update fetch and then install twice, and you will notice it updates /usr/src.. it will instruct you to reboot after the first install, but instead do another install and you will notice that /usr/src has been updated. Rebuild your custom kernel and reboot. You risk changed ABIs during this, in practice it may be fine but depends how much you care about the box and whether you are comfortable cleaning up from a chroot if things go really bad.
Better: use svnlite in base or real SVN to update /usr/src to the releng/10.3 branch. Build your kernel, reboot, do freebsd update to get the base updates and make sure your kernel is intact.
Best: use svnlite to update /usr/src. Do buildkernel, reboot. Do buildworld and follow https://www.freebsd.org/doc/handbook/makeworld.html. The more you run FreeBSD, the more you will want to follow -STABLE or -CURRENT and do your own release engineering.
Future best: Use any method to derive custom kernel, use packaged base to update base. Or again hopefully common use wont need a custom kernel.
I'm normally a Linux user but found FreeNAS too restrictive and then spent 2 months worth of spare time fiddling with this thing.
The learning curve seems vertical at times but I'm finding FreeBSD quite refreshing. Ports and pkg-ng are great (although Australia really, really needs a local mirror).
The files I need to boot from live on a USB thumbdrive and I've got IPMI to the box so I'm not too worried. I think buildworld would be pretty slow on this box (Atom C2758). I'll give it a shot.
I don't really need vnet but having IPs per jail and some kind of network seperation made more sense to my brain.
Hah, weird. For me, Docker seems to create complexity. Daemon, API, registry…
I made a tiny tool that spins up a jail with nullfs/unionfs mounts and RCTL resource limits from a single JSON/UCL file: https://github.com/myfreeweb/sandblast
You repeat the same process. svn update your src and the rebuild your world and kernel. That is the price for custom kernel configs, no more kernel binary distribution (unless you setup your own build server, which you really don't want to do).
currently the base userland is not controlled by the pkg system. You can use freebsd-update to do a binary upgrade, which will also sync your kernel sources if you have stuff in /usr/src, so you can simply rebuild kernel after running the update.
Should be noted in 11-CURRENT there is currently ongoing work to move userland and the generic kernel into pkg, so look forward to that as well.
I reverted to a generic kernel (it doesn't look like I ever had /boot/GENERIC - did I read out of date doco?), then ran freebsd-update as normal. Seems to be fine. I'll rebuild my custom kernel later.
An off-topic question: Does anybody know anything about the status of ath5k on OpenBSD? My laptop has a AR242x/AR542x driver, can it be run on OpenBSD somehow? There are a lot of articles on the web about it, but I can't find actual information about whether it is possible or not to use that indeed.
I suppose when windows caught up Bash on Windows, FreeBSD needed to do something to keep one step ahead =].