10-05-2012
First and foremost, Linux is not UNIX because it says so. The GNU system which Linux is a part of stands for "GNU's Not UNIX". They named GNU that to set it apart from the very expensive commercial UNIX distributions that were dominant at the time.
It's extremely similar. Folders and devices and networking works the same way. Not all the utilities are quite the same, configuration is different, and the kernel's features are still changing as its developers experiment.
On the other hand -- not even all UNIX is alike. It's really not that different.
What do you really need to know about Unix? I'd start with the Bourne shell and the concepts underlying it(directories, files, and so forth). That will be handy no matter where you go in UNIX and LINUX. You can boot an OS in virtualbox, install another hard drive and dual-boot, boot a Linux livecd for an environment that's hard to mess up -- it's a CD, you can't delete something by accident. Lots of ways.
4 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hi All,
I have a few questions which I am unable to solve/answer.
Please help me with them:-
Command in Unix to determine if a Host is connected to the internet ?
If a parenet process is killed what happens to the child process?
How do I print the first 10 lines of a file in the... (1 Reply)
Discussion started by: shubhranshu
1 Replies
2. Linux
Hi there;
I need to know all the things about services which help my Linux OS running.
So what're important services of LINUX OS ?
Anyone can help me...
Tks all ? (1 Reply)
Discussion started by: quan0509
1 Replies
3. Ubuntu
My PC (Esprimo, 3 yeas old) has one hard drive having 2 partitions C: (80 GB NTFS, XP) and D: (120 GB NTFS, empty) and and a 200 MB area that yet is not-partitioned.
I would like to try Ubuntu and to install Ubuntu on the not-partitioned area . The idea is to have the possibility to run... (7 Replies)
Discussion started by: C.Weidemann
7 Replies
4. What is on Your Mind?
Nice UNIX history article by John Loeffler, February, 05th 2019
UNIX: Building The Most Important OS in the World
The most widely used operating system in the world was a project born out of failure. (0 Replies)
Discussion started by: Neo
0 Replies
LEARN ABOUT MOJAVE
curlopt_unix_socket_path
CURLOPT_UNIX_SOCKET_PATH(3) curl_easy_setopt options CURLOPT_UNIX_SOCKET_PATH(3)
NAME
CURLOPT_UNIX_SOCKET_PATH - set Unix domain socket
SYNOPSIS
#include <curl/curl.h>
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_UNIX_SOCKET_PATH, char *path);
DESCRIPTION
Enables the use of Unix domain sockets as connection endpoint and sets the path to path. If path is NULL, then Unix domain sockets are dis-
abled. An empty string will result in an error at some point, it will not disable use of Unix domain sockets.
When enabled, curl will connect to the Unix domain socket instead of establishing a TCP connection to a host. Since no TCP connection is
created, curl does not need to resolve the DNS hostname in the URL.
The maximum path length on Cygwin, Linux and Solaris is 107. On other platforms it might be even less.
Proxy and TCP options such as CURLOPT_TCP_NODELAY(3) are not supported. Proxy options such as CURLOPT_PROXY(3) have no effect either as
these are TCP-oriented, and asking a proxy server to connect to a certain Unix domain socket is not possible.
The application does not have to keep the string around after setting this option.
DEFAULT
Default is NULL, meaning that no Unix domain sockets are used.
PROTOCOLS
All protocols except for file:// and FTP are supported in theory. HTTP, IMAP, POP3 and SMTP should in particular work (including their
SSL/TLS variants).
EXAMPLE
Given that you have an nginx server running, listening on /tmp/nginx.sock, you can request a HTTP resource with:
curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, "/tmp/nginx.sock");
curl_easy_setopt(curl_handle, CURLOPT_URL, "http://localhost/");
If you are on Linux and somehow have a need for paths larger than 107 bytes, you could use the proc filesystem to bypass the limitation:
int dirfd = open(long_directory_path_to_socket, O_DIRECTORY | O_RDONLY);
char path[108];
snprintf(path, sizeof(path), "/proc/self/fd/%d/nginx.sock", dirfd);
curl_easy_setopt(curl_handle, CURLOPT_UNIX_SOCKET_PATH, path);
/* Be sure to keep dirfd valid until you discard the handle */
AVAILABILITY
Since 7.40.0.
RETURN VALUE
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
SEE ALSO
CURLOPT_OPENSOCKETFUNCTION(3), unix(7),
libcurl 7.54.0 December 21, 2016 CURLOPT_UNIX_SOCKET_PATH(3)