--- title: "Hurd" date: 2025-03-03T15:34:41+08:00 lastmod: 2025-03-03T23:28:46+08:00 layout: single --- {{< mono >}} [TODOS](/hurd/todos) {{< /mono >}} ## links {{< mono >}} | name | link | | --- | --- | | kernel-list-archive | | | debian-list-archive | | | irc-archive | | | kernel-home | | | debian-home | | {{< /mono >}} refs: {{< mono >}} | name | link | | --- | --- | | c | | | posix latest | | | posix 2013 | | | posix 2008 | | | glibc | | {{< /mono >}} ## *_MAX patch TODO: Move to separate page. ```c #include #include #include static inline char *xreadlink(const char *restrict path) { char *buffer; size_t allocated = 128; ssize_t len; while (1) { buffer = (char *)malloc(allocated); if (!buffer) { return NULL; } len = readlink(path, buffer, allocated); if (len < (ssize_t)allocated) { return buffer; } free(buffer); if (len >= (ssize_t)allocated) { allocated *= 2; continue; } return NULL; } } static inline char *xgethostname() { long max_host_name; char *buffer; max_host_name = sysconf(_SC_HOST_NAME_MAX); buffer = malloc(max_host_name + 1); if (gethostname(buffer, max_host_name + 1)) { free(buffer); return NULL; } buffer[max_host_name] = '\0'; return buffer; } static inline char *xgetcwd() { char *buffer; size_t allocated = 128; while (1) { buffer = (char *)malloc(allocated); if (!buffer) { return NULL; } getcwd(buffer, allocated); if (buffer) return buffer; free(buffer); if (errno == ERANGE) { allocated *= 2; continue; } return NULL; } } ``` ## git repos {{< link-group >}} hurd cru: upstream: debian: {{< /link-group >}} {{< link-group >}} gnumach cru: upstream: debian: {{< /link-group >}} {{< link-group >}} mig cru: upstream: debian: {{< /link-group >}} {{< link-group >}} glibc cru: upstream: debian: mirror: {{< /link-group >}} {{< link-group >}} web cru: upstream: {{< /link-group >}} ## cheatsheet Start qemu ```sh qemu-system-x86_64 -enable-kvm -m 4G -net nic -net user,hostfwd=tcp::3222-:22 -vga vmware -drive cache=writeback,file=[...] ``` Configure/Setup network ```sh settrans -fgap /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 fsysopts /servers/socket/2 /hurd/pfinet -i /dev/eth0 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 fsysopts /server/socket/2 -a 10.0.2.15 -g 10.0.2.2 -m 255.255.255.0 ``` Setup apt ```sh apt-get --allow-unauthenticated --allow-insecure-repositories update apt-get --allow-unauthenticated upgrade ``` ## mailing lists / irc {{< mono >}} | name | address | | --- | --- | | hurd | | | debian | | | irc | librechat #hurd | {{< /mono >}}