Linux Essentials for Delphi developers
There is currently no by using Delphi to target Linux. Long ago There was a thing called Kylix this worked on one version of RedHat Linux, barely, and back in the 1990s. But in the Community Road-map, targeting a fall release, there might is a-to targetLinux Servers.Here ' s hoping. If that happens, or even if that's delayed a bit, now was a fantastic time to hone your Linux skills. I ' m not going to tutor. You can Google probably almost as well as I can. But I am going to outline a plan of attack for a competent Windows developer to learn the essentials of Unix systems, with A focus on Linux. I recommend this plan is carried out in a virtual machine inside your main windows PC. You can not learn everything there are to know on Linux just by using the Windows Subsystem for Linux. There ' s no Linux kernel, no Linux networking stack, no desktop environment in the WSL.learn on an Ubuntu VM.
My belief is this Linux matters on the Server because:
- It is currently the right-to-deploy for the web in 2016.
- It is the right technology for cluster scale technologies.
- It's currently the right-to-build systems that's easily administered remotely, whether in the cloud, or at remote s Ites, or in large numbers.
- It is a lighter weight technology and currently have mature support for containers, big data technologies, and about $ o Ther things in that vein.
- It has a better to upgrading, without requiring as many reboots.
- It has a mature set of binary dependency management (Package installer tools), container and orchestration tools.
There is several aspects to learning to BES a competent Linux server developer
- You can install, upgrade, troubleshoot and maintain both client and server Linux systems. you know the most C Ommon command line tools and their everyday uses. Can log in, change your password, obtain root access, check what groups a userid belongs to, install and remove, and U Pgrade packages.
- you have installed and learned several different distributions. the entire concept of distributions deserves som E study by a person who wants to know what Linux is. You know isn't only how to use Apt-get (on Debian and Ubuntu) but several alternatives such as those on Redhat/centos and OT Hers. you know roughly what changes from the one major family of related distributions to another. i recommend Ubuntu to every beginner, and Debian to every intermediate and advanced user. in Some corporate environments, you could find that RedHat Enterprise Linux (RHEL) or its open-source variants CentOS And or Fedora are preferred. I recommend you learn Ubuntu first, and learn a RedHat variant later.
- Know how the Linux boot process works, from BIOS or EFI to the boot loader, to the kernel startup, to the Init Sequenc E, and service startups, and you know what runlevels is, and what Systemd is, and WHAT/ETC/INIT.D. You appreciate this unlike Windows, when a system refuses to boot, it's not the hard to repair it.
- You is comfortable in the Unix style shells, such as bash, CSH, and tcsh. You can write shell scripts and read and repair shell scripts.
- you is familiar with the basics of C development in Linux, including the use of GCC and CLANG, build tools, and Assoc iated parts. You can download something.tar.gz and unpack it, read the instructions and build it from source. when It breaks you can read the output and figure out what's wrong, and if googling the error doesn ' t help, can Dig in and fix it yourself. you know what static and shared libraries is, and you can find and install dependencies (libraries, tools) t Hat some package needs to build.
- you is comfortable with rebuilding the Linux kernel from source code, you know what kernel modules is and what Lsmod And Modprobe do, and your know how to reconfigure a kernel, turning options on and off. you know how to upgrade or add a additional kernel to your system ' s boot loader. this is actually really fun. you may find, have a system you can completely and utterly modify to suit your own needs and requirements Beco Mes a bit of a giddy experience. i know that I feel like I ' m actually in control of my computer when I run on Linux. on Windows, I feel like my machine belongs to Microsoft, and they just let me use it sometimes, when it's not bus Y doing something for the boys in Redmond. that being said, I really like Windows Ten, and I still primarily enjoy developing for Windows systems. but knowing both Linux and Windows is a very useful thing to me.
- You had a decent understanding of system administration core concepts, including the wide set of tools that would be is on AL Most every UNIX system. You can find files using several techniques. You can list processes. You can monitor systems. Know how to troubleshoot networking issues from the command line.
- You'll know you ' ve gotten in deep, if you had taken a side on the VI versus Emacs debate, and become extremely profic Ient in the use of one or the other. (hint:the correct choice is VI. Die Emacs heretics.
The above should give you enough to chew on for a year or both. What should your first steps is if you know nothing?
- You'll need at least gigs's free space.
- Download the latest Ubuntu 15.xx as an. ISO file.
- Install Ubuntu into a virtual machine. I recommend Client Hyper-V on Windows which are included in Windows Ten, or if you ' re still using that ancient Windo WS 7 thingy, then download VirtualBox, which are free. If your Linux install worked perfectly, the client integration piece that makes working with a mouse within a virtual oper ating system would work perfectly. If the client integration piece didn ' t work, make sure to learn what to manually "free" your mouse pointer from the VM if I T becomes locked inside it and you can ' t figure out how to release it.
- Play with virtual consoles (Ctrl+alt+f1 through F8). Learn what they is. Watch some tutorials on basic Linux stuff like logging in. Learn a bit about bash shell. Learn about the structure of Unix filesystems, learn the basics of UNIX file permissions and ownership.
- Learn about commands like ls, find, locate, grep, PS, pswd, more, less, wget, ssh, Ping. chmod, Chown, and others. Use the man command to learn on them (man grep).
- Learn to install and start up Apache Web server. Learn a bit about configuring it. Examine the configuration files in the /etc/apache2 folder
- Browse from your host (Windows) PC Web browser to the IP address of your Virtual machine. Use /sbin/ifconfig eth0 command to display your The current IP address from a terminal prompt.
- Learn to start and stop the X Server. When the X server was stopped, you had a text mode only operating system, which was ideal for server deployment. When it's running you had an opportunity to try some of the available IDEs that run on Linux.
- Optional: Learn some python and learn to write simple Web server applications with Python. (I do not recommend bothering to learn PHP, if you don't like a Python then look into Ruby and Go as server side languages.)
- Optional: Learn the fundamentals of compiling some small applications from source. Write some small command line applications in C, since that's going to give you a bit of a flavor for the classic Unix env Ironment. C programming on Unix are easily the single most important skill I has on Linux. If you can get over your preference for begin/end and learn to work on Unix in C when it's useful to doing so, you become a M Uch more well rounded developer.
- Optional: Install some open source Pascal compiler. Don ' t expect things to being exactly like Delphi, because they aren ' t but you might enjoy messing around with freepascal (com Piler), or Lazarus (IDE).
Come to the dark side. We have fortune cookies ...
Delphi Developer Linux Practice (GO)