17,509 reputation
22260
bio website stratigery.com
location Denver, CO
age 53
visits member for 4 years, 2 months
seen 3 hours ago

My first computer was a Radio Shack Color Computer 3 - 6809-based, running OS-9 Level II. It could run 32 processes at once, due to bank-switching a whole 1 Meg of memory.

After that, I got an AT&T 3b2, also known as a Convergent Safari. This was a Motorola 68010-based desktop.

Then, I graduated to a NeXT black&white "slab". I bought a used SPARCStation IPC in 1995, and put NetBSD 0.9 on it. I ran NetBSD on the IPC and a SPARCStation 10 until 2002.

I've been using Linux since 1997, starting with a DEC Alpha-based UDB, and downgrading to a x86 PC in 2002.

I run Arch linux, on my server and my laptop.


Sep
11
revised Why does cat x >> x loop?
added 123 characters in body
Sep
11
revised Why does cat x >> x loop?
Change splice() to sendfile()
Sep
11
revised Why does cat x >> x loop?
fix minor bug in syscat.c code: read() returned 0 at EOF, but the program kept looping.
Sep
10
revised Why does cat x >> x loop?
Add some alternatives to a read/write/repeat cat - mmap and splice are possible on some systems.
Sep
10
answered Why does cat x >> x loop?
Sep
10
answered Table or list of system call failure modes?
Sep
7
comment Cross-compiling Slackware: is the build order listed anywhere?
If and when you finish this, please edit your question to let everyone know where your documentation and project ended up. It sounds very interesting.
Sep
6
comment When did directories stop being readable as files?
I know that reading a directory as a file worked under Unix System V in the late 80s - early 90s. It worked under SunOS. It worked under some versions of Irix. I think that going to virtual file system and allowing many underlying disk organizations means that you can't really support this efficiently.
Aug
28
comment Please explain what happens when I run this Makefile
You should note that at least for "tradional" makefiles, and maybe all makefiles, the lines for "operations to build target" have to start with an ASCII tab character. This can cause problems, as spaces and tabs can render identically on screnn.
Aug
19
awarded  Yearling
Aug
15
comment Malloc and Paging
@user100503 - Yes, malloc()/calloc()/realloc() allocate from the heap. A little-used function alloca() allocates on the stack, but it's easy to make mistakes with alloca(). I believe that writing to an allocated page causes the kernel to actually allocate the physical memory. I can't point at any code or anything, but I'm still pretty sure.
Aug
11
answered Malloc and Paging
Aug
9
awarded  Nice Answer
Jul
31
comment How do pwd and . determine the current path differently?
In Unix, Linux and other filesystems, an inode number is actually a file's identifier to the operating system. Depends on the filesystem, but there's usually a very quick way to go from inode number to the disk block that the inode lives. The inode itself is the on-disk structure representing a file: ownership, permissions, which data blocks contain file's data, access times, etc. A directory is just a mapping from a textual name to an inode number, the quick lookup of disk block from inode number allows the OS to get data and metadata quickly.
Jul
31
answered How do pwd and . determine the current path differently?
Jul
31
awarded  Great Answer
Jul
30
answered How to determine what instructions a process is executing?
Jul
29
comment What is #@(#) in Kornshell syntax
@MaxVernon - you're welcome. I personally love this kind of question, as it exposes actual practices to a wider community, and it lets me mine my memory for whatever absurditites it has retained. If I might editorialize: "@(#)" saved me a few times in High Ritual production environments in the past. Why hasn't it survived? Knowing what versions got compiled together seems like valuable info.
Jul
29
answered What is #@(#) in Kornshell syntax
Jul
28
comment Difference between Unix OS Types
OSX is derived from Mach 2.5, with a thin layer of BSD compatibility on top. I'm not so sure it's FreeBSD, it might actually be BSD 4.4 lite or whatever that last BSD release was.