Three technologies from 3 different decades
C programming Language
First released in 1972, and this year marks its 50th anniversary. During this time, it has undergone numerous changes and revisions and currently there is a new standard being worked on, which is referred to as C2x.
C was originally designed for use in the Unix operating system. The first version of Unix was written in Assembly language for the PDP-7. They wanted to rewrite Unix in B, but PDP-7 was too small and slow for it to be worth it and it was deemed to be too expensive. In 1970, the Unix project acquired a PDP-11. They rewrote Unix in the PDP-11 Assembly dialect and ported projects that had previously been written in B. They wanted to make it easier to create interesting software because writing assembly was tedious and B had terrible performance issues. In 1971 they extended the B language and rewrote its compiler to generate PDP-11 machine instructions rather than threaded code. In the end they created a new language, which was small and fast enough to compete with assembly.
Today C is one of the most popular languages. It's mostly used in systems programming, because of it being a low-level programming language and it's compilers supporting many different architectures(for example gcc).
Linux kernel
Linus Torvalds began working on an operating system as a hobby after becoming dissatisfied with the licensing model of MINIX, which he was using at the time. He had ported a large amount of GNU software and worked on his own kernel. He wanted to call it Freax, which would stand for "free," "freak," and "x." He had thought of naming it Linux, but decided it was too egotistical. Ari Lemmke, a volunteer for an ftp server, didn't think it was a good name and renamed it to Linux. Linus initially objected to the name change, but later agreed, and the kernel was renamed to Linux.
Linux gained popularity as a free Unix-like operating system. GNU had written the majority of the components required for a free operating system at the time, but they were missing a kernel. As a result, they used the Linux kernel for their GNU system, which they dubbed GNU/Linux. Most Linux distributions today still rely on the GNU project.
WireGuard
Wireguard is the next-generation VPN protocol. It aims to be faster, leaner, and more performant than OpenVPN. It establishes connections through the exchange of public keys, and everything else is handled by WireGuard. In addition, unlike OpenVPN, which uses OpenSSL for encryption, WireGuard employs only algorithms deemed to be secure. WireGuard is also easier to audit due to its size of around 4000 lines of code. It achieves its high performance by residing in the kernel rather than running in the userspace. It was originally designed for the Linux kernel and was officially included in version 5.6, but many operating systems now have their own implementation of it.
Sources
https://developerinsider.co/c-programming-language-version-history/
https://www.javatpoint.com/history-of-c-language
https://cs-fundamentals.com/c-programming/history-of-c-programming-language.php
https://habr.com/en/company/badoo/blog/512802/
https://ieeexplore.ieee.org/document/6499601
https://csapp.cs.cmu.edu/3e/docs/chistory.html
https://gcc.gnu.org/backends.html
https://linuxhint.com/history-linux-kernel/
https://linuxscriptshub.com/history-of-linux/
https://www.gnu.org/gnu/gnu-history.en.html
https://tldp.org/HOWTO/Secure-Programs-HOWTO/history.html
https://www.wireguard.com/
https://restoreprivacy.com/vpn/wireguard/
https://restoreprivacy.com/vpn/wireguard-vs-openvpn/
https://download.wireguard.com/monolithic-historical/
Kommentaarid
Postita kommentaar