36

It is not possible to give a real answer to this question, but the form of a comment is not sufficient. So I think it may be a good idea to collect points to a editable answer... Two years ago, David and Glenn have been layed off by AT&T - I guess both are now over 65. Half a year later, they have been hired by Google and Glenn confirmed me that their ...


21

NO tldr: github.com/att/ast and github.com/att/uwin On Jan 19-20, 2016 the following (1|2) messages were posted to the ast-users mailing-list: (and I consider the dgk has some patches comment especially encouraging) Wed, Jan 20 2016; From Glenn Fowler: Thanks Lefty for all the work getting this up and running. I know dgk has some patches in the ...


15

Yes, do display a message on stderr when the wrong arguments are used. And if that also causes the application to exit, exit with non-zero exit status. You should use the standard error stream for diagnostic messages or for user interaction. Diagnostic messages include error messages, warnings and other messages that are not part of the utility's output ...


15

A lot of other people are getting into the details of more complex makefiles and a lot of the complexity that comes with them. I typically use makefiles for a completely different reason: I don't want to remember anything. Even if your project is really boring and simple, and you don't use makefiles "correctly": all: gcc main.c -o project I don't ...


13

Yes and no. The official AT&T Korn Shell may be pining for the fjords, but there are two actively developed clones. There's pdksh, the public domain clone of the Korn shell, but that hasn't been updated in 16 years, it seems. However, OpenBSD uses pdksh as the default /bin/sh and they update it fairly frequently. NetBSD's default install has pdksh as ...


13

They are descriptions of SunRPC-based protocols (RPC standing for Remote Procedure Call). Each file typically describes data structures which are used by these RPCs, and programs which implement them; for example, yppasswd.x describes the Yellow Pages password update protocol and is relatively easy to understand: program YPPASSWDPROG { version ...


12

Unix is actually a trademarked name for that operating system and the core specification is here: http://www.unix.org/ . Linux is not Unix but only modeled after it in part. FreeBSD is a direct descendent of Unix though a lot has been changed since its inception. In order to be called Unix, you must apply for certification. Apple's OSX is certified Unix.


11

As opposed to what? Suppose you have a program that you have split into two files, which you have imaginatively named file1.c and file2.c.  You can compile the program by running cc file1.c file2.c -o yourprogram But this requires recompiling both files every time, even if only one has changed.  You can decompose the compilation steps into cc -c file1.c ...


9

I would suggest filing the bug report with the distribution's bug tracking system, if you are using their build. They can then escalate the bug report to the upstream maintainer, should it turn out that it exists in a vanilla build as well. The rationale behind this is simply that since many distributions apply patches of their own, unless you are certain ...


8

Linux is the kernel. You can download it at kernel.org. There are several boot loaders, but the best known one is Grub. To clarify the confusion, Mint is a Linux-based distribution. It is Linux, plus the GNU Compiler Collection, the X Window System, and 1,000s of other programs all rolled together into an operating system. Perhaps before developing your ...


8

Alternatively you can try to discuss your idea on IRC first: http://userbase.kde.org/IRC_Channels https://live.gnome.org/GnomeIrcChannels But for a broader audience you might really be better off to post on the mailinglists first: http://www.kde.org/support/mailinglists/ https://mail.gnome.org/ If you have a specific idea and are able to contribute some ...


7

There are quite a few tools around to generate makefiles. The two most common ones are CMake and Automake; both of these ask you to describe the components of your project and the desired output, and generate makefiles for you. This is no doubt a matter of opinion, but you'll probably find CMake easier to get to grips with; if you ever need to cross-compile ...


6

On the architecture side, you need more than an instruction set and a computer architecture. You also need to have: A CPU in some form (emulator, FPGA, silicon…). A way of booting that processor: a way of getting the operating system into the memory that the processor runs at boot time. Most processors boot to code stored in ROM which either switches on ...


6

Yes, just create an expression for the single package. You can get dependencies from nixpkgs by pkgs = import <nixpkgs> {};.


6

Snippet from the rpcgen manual on a Linux system: rpcgen is a tool that generates C code to implement an RPC protocol. The input to rpcgen is a language similar to C known as RPC Language (Remote Procedure Call Language). rpcgen is normally used as in the first synopsis where it takes an input file and generates up to four output files. ...


6

Yes, to use a 32-bit library you need to create a 32-bit binary. On Debian 8 on amd64, you can build 32-bit binaries using the gcc-multilib (for C) or g++-multilib (for C++) and GCC’s -m32 option. Using CMake, I imagine adding -m32 to the flags would be sufficient. It is possible to set CMake up for both 32- and 64-bit builds in a single project, but it’s ...


5

The process is clearly defined in the kernel source code. system1:/usr/src/linux/Documentation # ll SubmittingPatches -rw-r--r-- 1 root root 28473 Dec 2 2009 SubmittingPatches They go over every step you have to take. It looks like email is the only way. I would recommend getting another free account or simply mail it from your laptop using nail | mail ...


5

If you're trying to accomplish a user-space task by directly modifying the operating system's kernel, you're doing something wrong 99.999% of the times. For cases where a direct interaction with kernel's subsystems and data structures is required, people invented the loadable kernel modules. I think you have a misunderstood the terms kernel and shell. To ...


5

If learning, then I wouldn't start with a modern/complete/working/real-world OS like Linux. Bookmark that, though & come back to it in a second pass. To begin with, there's too much going on there to for learning kernel internals. (There's a reason we begin C programming with "helloworld.c" and not "gcc.c"). Rather, start with a for-educational-purposes ...


5

If you want lock stats on your kernel, you have to recompile with CONFIG_LOCK_STATS enabled. Look into Documentation/lockstat.txt in the kernel tree for more documentation.


5

Presumably they do it for technical reasons like everyone else. Here's the output of grep -R Microsoft . | grep -i "(c)" run in the 3.13.3 source tree: ./tools/hv/hv_vss_daemon.c: * Copyright (C) 2013, Microsoft, Inc. ./drivers/net/hyperv/hyperv_net.h: * Copyright (c) 2011, Microsoft Corporation. ./drivers/net/hyperv/rndis_filter.c: * Copyright (c) 2009, ...


5

This blog post have some details: http://sandervanderburg.blogspot.no/2014/07/managing-private-nix-packages-outside.html For more low-level from-the-ground-up details there's the nix-pill series: http://lethalman.blogspot.no/2014/07/nix-pill-1-why-you-should-give-it-try.html But I think the basic approach is to create your own version of ~/.nix-defexpr/...


5

"Yes and no. The official AT&T Korn Shell may be pining for the fjords, but there are two actively developed clones." Unfortunately pdksh and mksh are ksh88 near workalikes (clone is too strong). I have yet to find an actual ksh93 workalike (bash and zsh don't come all that close). Personally I hope that the transition to Google will speed up the ...


5

There are quite a few assemblers available, including: gas (part of binutils, and supported by GCC) — this is available everywhere, and uses AT&T style; NASM (look for a nasm package in your distribution) — this supports Intel-style mnemonics; Yasm which is a rewrite of NASM (look for a yasm package). Here's a “Hello world” for gas: .global _start ...


5

From POSIX specifications for the standard streams: At program start-up, three streams shall be predefined and need not be opened explicitly: standard input (for reading conventional input), standard output (for writing conventional output), and standard error (for writing diagnostic output). In other words, errors, debugging info, and anything ...


5

Even with small project it can be helpful keeping the dependency logic under control and builds automated. I also used it to trigger installs and deinstallations, so it was a main switch resetting the stage.


4

Before reading the other responses, my guess was that pid_t exists for portability reasons. In the Good Ol' Days, some Unixes had short PIDs, others had int PIDs, so you define a system-specific type for PID. I can't recall any pain involved in using int for a file descriptor, even in the very early days of 64-bitness.


4

Update 1 I believe the feature you are looking for is actually X Window multi-pointer. From ArchLinux Multi-Pointer X Introduction: Xorg servers starting from version 1.7 have a feature called "multi-pointer". Basically it allows to have multiple mouse cursors (each with its own keyboard focus) on the screen and control them with separate physical ...


4

UTS Namespaces are per-process namespaces allowing a process to have different namespaces for different resources. For example, a process could have a set of namespaces for the following: mountpoints PID numbers network stack state IPC - inter process communications NOTE: the use of namespaces was limited only to root up until version 3.8+ of the Linux ...


4

Yes you should be safe to remove any *-dev packages, since these are typically the header files needed when compiling against a give packaged library. Remember you can always list the contents of a given package using dpkg -L <pkg> if you have any doubts as to what's inside it. Example $ dpkg -L libgdbm-dev | head -10 /. /usr /usr/include /usr/...


Only top voted, non community-wiki answers of a minimum length are eligible