Avez-vous lu Just for fun, auto-biographie de Linus Torvalds parue en 2001 ? Elle n’aborde que les débuts mais fait découvrir un esprit indépendant amoureux de la technologie. Elle risque de décevoir les esprits religieux épris d’absolu qu’on trouve dans le monde des logiciels libres. Au fil du temps, les grandes entreprises de technologie informatique ont complètement intégré l’existence et l’intérêt pour elles du monde Linux. IBM a été la première à le comprendre, comme l’explique Torvalds dans Just for fun. Aujourd’hui, les GAFAM sont toutes alignées sur ce point.
Excerpt from the commit in the Git repository of the Linux kernel source:
The getrandom(2) system call was requested by the LibreSSL Portable developers. It is analoguous to the getentropy(2) system call in OpenBSD.
The rationale of this system call is to provide resiliance against file descriptor exhaustion attacks, where the attacker consumes all available file descriptors, forcing the use of the fallback code where /dev/[u]random is not available. Since the fallback code is often not well-tested, it is better to eliminate this potential failure mode entirely.
The other feature provided by this new system call is the ability to request randomness from the /dev/urandom entropy pool, but to block until at least 128 bits of entropy has been accumulated in the /dev/urandom entropy pool. Historically, the emphasis in the /dev/urandom development has been to ensure that urandom pool is initialized as quickly as possible after system boot, and preferably before the init scripts start execution.
This is because changing /dev/urandom reads to block represents an interface change that could potentially break userspace which is not acceptable. In practice, on most x86 desktop and server systems, in general the entropy pool can be initialized before it is needed (and in modern kernels, we will printk a warning message if not). However, on an embedded system, this may not be the case. And so with this new interface, we can provide the functionality of blocking until the urandom pool has been initialized. Any userspace program which uses this new functionality must take care to assure that if it is used during the boot process, that it will not cause the init scripts or other portions of the system startup to hang indefinitely.
Notes. LibreSSL is a free version of the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols, forked from OpenSSL cryptographic software library in April 2014 by OpenBSD developers after the Heartbleed security vulnerability in OpenSSL.
Recently, a friend of mine, who is also a mathematician, received a new laptop equipped with Ubuntu, a version of the Linux operating system based on Debian. He asked then about the best available free LaTeX editor under Linux. There is no canonical answer to this question. I like to use Emacs and sometimes vim (old Unix habits). Many other editors have a LaTeX plugin such as gedit,geany, jedit, etc. There is also a bunch of LaTeX specific editors such as texworks, latexila, texmaker, kile, etc. For people not so familiar with Unix, I suggest to try gummi (for people familiar with Apple Macs) or texstudio (for people familiar with Microsoft Windows). People familiar with Scientific Workplace or Scientific Word may try lyx. This software universe is evolving so rapidly that this post will become obsolete very soon.
I take this opportunity to advertise xournal, written by the mathematician Denis Auroux. This program has nothing to do with LaTeX, but is very useful : it allows to annotate PDF files!
The Internet takes its historical roots in US military and academic projects in the sixties. Its present popular success is due to the invention of the World Wide Web (WWW) by Tim Berners Lee around 1990, while working at the European organization for nuclear research (CERN) in Geneva. Many WWW servers are powered by Linux. Linux is a Unix-like operating system created in 1991 by Linus Torvalds in Helsinki (not named by him – see below). He also created later the distributed revision control system Git to help the development of the Linux kernel. The current Linux kernel, still controlled by Torvalds, is actually a huge collaborative project developed by a decentralized group of independent individuals spread across the world. Many of them are employed by corporates such as Intel, IBM, SGI, Oracle, RedHat, Google, Nokia, Samsung, paid to contribute to the kernel (a symptom of the great success of Linux in the Industry). Linux has reached the age of twenty this year. You may read the interesting text Linux at 20, some personal memories by Lars Wirzenius, a classmate of Linus Torvalds. Here are some excerpts:
“Linux is 20 years old this year. That’s a long time. Since I was there from the beginning I thought I’d share some memories of what’s happened. In 1988 I graduated from high school, and got accepted into the University of Helsinki to study computer science. […] That’s also where I met the only other Swedish speaking new CS student of that year, a guy named Linus Torvalds. […] Computers were quite expensive back then, and the university provided access to classrooms full of PCs running MS-DOS, plus a few Macs, and some terminals connected to a big VAX/VMS system. I never liked MS-DOS that much, and they were often all in use. I couldn’t make heads or tails of the couple of Macs I tried, never having seen a GUI before. Thus I naturally graduated to the terminals, even though VAX/VMS was a horrible system to use, I thought. […] The CS department had a small Ultrix computer hidden away, mostly unused, and I happened to get access to that. Ultrix was DEC‘s version of Unix. I had read about Unix, particularly in the K&R C book, and liked what I’d read. […] Multiple processes at the same time! Filenames weren’t unnaturally constricted! It was quite liberating. […]
We explored the Unix system and related tech in other ways as well, and had great fun. […] Christmas 1990 came and went, and on January 5, Linus bought a new computer. He’d been using a Sinclair QL at home, but wanted a PC with an Intel 386 CPU. He took his student loan and bought one. He intended to learn about multitasking by learning how the 386 did it. Unfortunately, he also got a copy of Prince of Persia (I think it was), a computer game. […] Months later, when he finally got bored of the game, he started actually learning 386 programming. […] Second, I’d known Linus for a while now, and although he was clever, he was also lazy, and sometimes, when he was drunk, he’d start arguing about things and say some of the silliest, most stupid things one can imagine anyone saying. […] However, Linus kept playing with multitasking on his 386, and making it do more, piece by piece. […]
What Linus really wanted, though, was a Unix computer at home. He’d heard of Minix, and he’d bought the book, and got Minix running on his 386 PC. It worked, but nowhere near as well as the machines at the university. Thus he kept prodding Minix, and improving his own multitasking program, and generally hacking away. […] Linus’s multitasking program grew, and grew, and gained features such as a hard disk driver, and memory management, and a filesystem. He had enough of a kernel to run some userspace programs, and he made it so that he could compiler programs on Minix, and run them on his own kernel. […] In August, Linus mentioned his kernel project on comp.os.minix for the first time. Later on, he decided to make the code available, and got one of the admins of ftp.funet.fi to put it there. For this, the project needed a name. Linus wanted to call it Freax, but Ari Lemmke, the ftp.funet.fi admin, decided to call it Linux instead. You can find the Freax name in the Makefile of the earliest Linux releases. […] The first Linux release was not installable, as I recall. Linus needed to develop a way to install his operating system. […]
In 1993, both Linus and I got hired by the CS department as assistant teachers (possibly teaching assistant is the correct English term): we helped other students with their homework, and checked that they had done it. This meant that we got to share an office. This was quite good for Linux development. Linus had an income, so he didn’t have to worry about that, and more importantly, fast Internet access, which helped things quite a bit, especially since Linux was gaining networking abilities. […] For a while, Linux did not quite do everything right with networking, so it was banned from the university network. That gave Linus a lot of motivation to fix it, of course. […]
Fast Internet access also allowed Linus and me to have a look at the various Linux distributions that were popping up. For whatever reason, Linus picked Red Hat. I thought that the Force needed some balance, so I picked Debian. We’ve both stuck to our choices since. The emergence of Linux distributions was, of course, a boon for Linux. Even if the systems were much harder to use than, say, Mac or Windows ones, at least it was no longer necessary to fiddle with hex editors to get it to install and boot. This made the user base much larger, and brought in a lot of new people, some of whom also participated in the development of the systems. […]
Being employed by the university also helped us when we decided to organize a launch event for Linux version 1.0, in 1994, when it finally happened. We got access to the auditorium, and the head of the CS department gave a speech, and all this gave us enough credibility that there was a fair bit of interest from mainstream media. There was even a television crew, and the footage is occasionally found in various places on the Internet. During the speeches, we had a ceremonial compilation of the 1.0 kernel running in the background. In 1997, Linus graduated and got hired by Transmeta, and moved to the US, and I mostly lost direct contact with him. […] Let’s hope Linux and free software are around for the next twenty years and help nurture the revolution further.”
Personally (the author of this blog) I use Linux since August 1996, thanks to my classmate Guillaume Foliard, who connected me with the ANRTT group in Toulouse, created by David Robert and few friends of him including Jean-Christophe Arnu, Marc Thirion, David Rocher, Emmanuel Chaput, and Patrick Magnaud, among others. I will remember for ever my first meeting with them, in salle Marnac of Ramonville Saint-Agne. To my knowledge, this group was one of the first Linux and Free Software users group in France. I was preparing my Diplôme d’Études Approfondies in Mathematics in 1996-1997, and to be honest, I devoted a great part of my time to the learning of Unix instead of doing Mathematics! I am very happy with Linux, both at home and at work. It suits perfectly a mathematician like me who likes intellectual freedom and computer science concepts. I tried first the Slackware distribution, and then switched quickly to RedHat for few years, and then to Debian ten years ago. I also tried a bit Mandrake, Ubuntu, and various other Linux distributions. I even tried by simple curiosity other Unix-like operating systems such as FreeBSD (now at the heart of Mac OS X). But nothing suits me like Debian (I should say Debian GNU/Linux). I am impressed by the strength, via Linux, of the fourty years old concepts of Unix, and by the GNU Project. I wonder if in the near future, a young guy will come with something completely new and revolutionary. Linux based operating systems are nowadays fully functional and easy to use, thanks to the development of Free Software such as X.Org, KDE, GNOME, LibreOffice, Firefox, Thunderbird, GIMP, etc. This development is impressive, and the differences with non-free operating systems and software are presently negligible. My 68 years old mother is now using Debian GNU/Linux daily. I do not see GNU/Linux as a conceptual revolution. It is brilliant engineering work, sometimes innovative, always pragmatic. However, the ideas of Free Software developed by Richard Stallman were revolutionary at the social level. With Linux, this anarchy utopia of Stallman became massively concrete. Wikipedia is another implementation of the anarchy utopia of Stallman at the social level (powered by Linux and various other free software including GNU software, Apache, MySQL, and MediaWiki). To me, the success of free software is due to the absolute of Stallman and to the pragmatism of Torvalds.
Note: my first computer was also an Intel 386 (June 1992) and I loved 386 programming 🙂
Debian GNU/Linux: an analysis was performed for Debian GNU/Linux version 4.0 (2007). This distribution contained close to 283 million source lines of code (the Linux kernel represents few percents), and the study estimated that it would have required about seventy three thousand man-years and cost US$7.6 billion (in 2011 dollars) to develop by conventional means.
Unix: actually everybody is using a Unix like operating system everyday, for instance via smartphones (including the iPhone), and when using Internet since most DNS servers are powered by a Unix like operating system.