- 14 Apr, 2017 3 commits
-
-
Kevin Wolf authored
! kernel2: Wenn zwei verschiedene Streams zu einer non-seekable Ressource (z.B. Terminal) existieren, dann müssen ihre Dateizeiger synchronisiert werden, damit nicht z.B. Tastatureingaben doppelt gelesen werden. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ kernel2: Alle Zugriffe auf die aktuelle Dateiposition gehen jetzt nicht mehr direkt auf s->read_pos/write_pos, sondern durch die neuen Funktionen, die raussuchen, welches von beidem der richtige Wert ist. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ kernel2: Neuer Syscall zum Zusammenbasteln von Stream aus zwei verschiedenen Streams (Eingabe und Ausgabe) Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 23 Jan, 2017 3 commits
-
-
! syslinux: In neueren Versionen sind Files für bios- und UEFI-Boot vorhanden. Mit diesem Patch wird das vorhandensein hiervon erkannt und die bios-files verwendet. Signed-off-by:
Alexander Siol <dunklermeuchler@gmail.com> Acked-by:
Kevin Wolf <kwolf@tyndur.org>
-
! gcc 6.x haben einige neue Warnungen, u.a. für unsinnige Bedingungen, irritierende Formatierung, unbenutzte Variablen und overflows bei shift-Operationen ergänzt. Diese werden hiermit behoben. Signed-off-by:
Alexander Siol <dunklermeuchler@gmail.com> Acked-by:
Kevin Wolf <kwolf@tyndur.org>
-
! Einige der Prüfungen zu alten/neuen Dateipositionen im fat-Treiber waren statisch true, jetzt wird auch wieder geprüft. Signed-off-by:
Alexander Siol <dunklermeuchler@gmail.com> Acked-by:
Kevin Wolf <kwolf@tyndur.org>
-
- 21 Jan, 2017 6 commits
-
-
Kevin Wolf authored
* kernel2: lio_seek() geht jetzt eingeschränkt auch für Pipes, es betrifft dann immer die Position im Lesestream. Erlaubt ist es, die aktuelle Position zu ermitteln und (relativ) vorwärts zu springen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ kernel2: Passende Kernelimplementierung für die .pipe-Operation, die im Userspace schon implementiert ist: Für eine als Pipe markierte erstellt der Kernel beim Öffnen eine Pipe und gibt das eine Ende an den .pipe-Callback des Service. Das ist nicht das Interface, das wir am Ende haben wollen, aber es ist vervollständigt, was schon da ist, und erstmal das zu mergen und dann davon ausgehend weiterzubasteln macht das Rebasen des alten LIOv2-Codes auf master einfacher. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! shell: Seit fread() ordentlich blockiert wie es normalerweise sollte, funktioniert 'pipe' leider nicht mehr. Damit es weiterhin tut, muss man es auf passende LIO-Funktionen umbauen. Und irgendwann wäre auch mal was select()-artiges toll... Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Eine neue Read-Funktion, die nicht blockiert, und sowohl mit LIOv1- als auch LIOv2-Dateien tut. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: Wenn man Fehler als -errno zurückgibt, ist es nicht so clever, den Rückgabewert direkt in einen size_t zu speichern und dann nur auf ret < bytes zu testen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! vesa: vesamodeinfo kann auch auf dem Stack alloziert werden, dann sparen wir uns nicht nur das malloc(), sondern leaken das Ding auch nicht mehr. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 07 Jan, 2017 1 commit
-
-
Kevin Wolf authored
! image_hd_syslinux: Nach dem Vorbild des großen GRUB 2 hat sich syslinux entschieden, jetzt auch mal Modulabhängigkeiten zu haben, so dass einfach das kopieren, was man haben möchte, je nach Version nicht mehr unbedingt ausreicht. Also müssen wir jetzt auch hier die Module anschauen und rausfinden, welche Abhängigkeiten mitkopiert werden müssen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 05 Jan, 2017 1 commit
-
-
Kevin Wolf authored
! buildmk.sh: build/output/system muss erst einmal erstellt werden, sonst kann man die libc.so nicht dorthin kopieren Reported-by:
Alexander Siol <alex@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 04 Jan, 2017 13 commits
-
-
Kevin Wolf authored
* build/config: Je mehr lbuilds dazukommen, um so öfter reichen die 64 MB, die das Festplattenimage bisher hat, nicht mehr aus. Dieser Commit erhöht die Größe auf 256 MB, in der Hoffnung, dass das zumindest für eine Weile wieder ausreichend ist. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
* libc: Anstatt wie bisher zwei separate Bibliotheken src/lib/library.a und src/modules/lib/library.a zu bauen, wird die Bibliothek aus src/lib/ jetzt nicht mehr direkt gegen Programme gelinkt, sondern in die library.{a,so} integriert. Damit ist libc.so vollständig genug, dass auch lbuilds dagegen linken können. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: Anscheinend haben wir setjmp.o nie wirklich ins .a-Archiv aufgenommen. Vielleicht sollte man das mal tun. * libc: Und wenn wir schon dabei sind, sollten wir für die (in Assembler implementieren) Funktionen auch noch den Symboltyp auf Funktion setzen und eine Größe angeben, sonst mag ld nicht dynamisch dagegen linken. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
* libc: Wenn man mit -fPIC kompiliert, sind statt über 3300 Relokationen nur noch knapp 650 übrig. Und für echte Shared Libraries will man das früher oder später sowieso, weil damit dann alle Relokationen direkt nebeneinander liegen und man nicht überall COW machen muss. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Zusätzlich zur statischen Bibliothek auch eine dynamische bauen + modules/c/*: Die libc dynamisch linken Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! user-i386.ld: Wenn man __ctor/dtor_start/end__ innerhalb der Input Section Description anlegt statt außenrum, kommt ld nicht auf die Idee, irgendwelche Orphaned Sections dazwischenzupacken, die als Konstruktoren interpretiert nicht so richtig viel Sinn ergeben. + user-i386.ld: .dynbss explizit hinzugefügt (das hatte sich ohne den Fix zwischen die Konstruktoren gemogelt) Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Der ELF-32-Loader kann jetzt Shared Libraries nachladen, wenn die Binary einen DYNAMIC-Program-Header hat, der das verlangt. Dabei werden die nötigen Relokationen direkt ausgeführt (d.h. es gibt im Moment kein Lazy Binding, sondern alle Symbole, ob benötigt oder nicht, werden aufgelöst). Was hier implementiert ist, ist zwar dynamisches Linken, aber keine echten Shared Libraries, weil nämlich nichts gesharet wird. Das kann etwas Plattenplatz sparen, weil die Bibliotheken nur noch einmal vorhanden sein müssen statt überall statisch dazugelinkt, aber in Sachen RAM liegt weiter für jeden Prozess eine Kopie im Speicher. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Ein neuer Callback loader_get_library() für den ELF-Loader, der ein ELF-Image einer Shared Library in den Speicher lädt + init: Implementierung von loader_get_library() Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
* libc: Als Vorbereitung für die Erweiterungen erst ein bisschen Refactoring für den bestehenden Loader machen. Der wird dabei so umgebaut, dass er davon ausgeht, dass es mal mehrere Images zu laden geben könnte. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Ein Satz sys/queue.h-Makros für einfach verkettete Listen Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: fread() mit blocksize == 0 sollte nicht durch Null teilen, sondern einfach direkt 0 zurückgeben. Das gleiche können wir auch mit blockcount == 0 tun, obwohl es da nicht so wichtig ist. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: (U)INTn_MAX und SIZE_MAX müssen per #if vergleichbar sein, also dürfen da keine Casts oder ähnliches verwendet werden Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: read() darf nicht -EAGAIN zurückgeben, wenn es eigentlich blockierend sein sollte. Weil LIOv1 nicht wirklich blockieren kann, muss read() selber eine entsprechende Schleife haben. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 02 Jan, 2017 2 commits
-
-
Kevin Wolf authored
! init: Es kann (anscheinend vor allem auf langsameren Maschinen wie qemu ohne KVM) passieren, dass die ersten paar Prozesse init so oft nach servmgr fragen, dass init nur noch damit beschäftigt ist, zu sagen, dass das noch nicht da ist, und nie dazu kommt, es wirklich zu laden. Das ist ein bisschen schade. Also lassen wir init erstmal alle Module laden, bevor es auf RPCs antwortet. (Ich weiß, die richtige Lösung wäre, das Polling loszuwerden, aber... nicht heute.) Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: Keine Ahnung, ob es überall nötig ist, aber ohne memory-Clobber gibt zumindest mem_dma_allocate() nicht unbedingt die physische Adresse zurück, die alloziert worden ist. Also lieber mal an ein paar Stellen mehr clobbern. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 29 Dec, 2016 3 commits
-
-
Kevin Wolf authored
+ libc: strtoll() implementiert Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libm: gcc hat auch praktische Builtins für frexp() und modf() und die Entsprechungen für float und long double. Benutzen! Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Der Compiler hat noch einen ganzen Haufen vordefinierte Makros für Konstanten in float.h auf Lager, die könnte man auch einfach benutzen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 28 Dec, 2016 7 commits
-
-
Kevin Wolf authored
* shell: Wenn stdin ein Terminal ist, aktiviert ls die Farben jetzt per Default. Außer dem Dateinamen wird jetzt auch der Typ eingefärbt. Abgesehen davon macht ps die Überschriften auf Terminals weiß und der Prompt ist jetzt ebenfalls weiß statt hellgrau. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Hilfsfunktionen, die für einen gegebenen FILE* oder POSIX-Dateideskriptor feststellen, ob es sich um ein Terminal handelt. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ kernel2: Unterstützung für LIO_IOCTL_ISATTY, was einfach bei Terminals Erfolg und bei allem anderen einen Fehler zurückgibt + vterm: Terminals als solche markieren, damit der Kernel das bei LIO_IOCTL_ISATTY berücksichtigen kann Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ kernel2: Mit lio_ioctl() gibt es jetzt einen Syscall, um ressourcenspezifische Befehle auszuführen. Dieser Commit enthält nur die Infrastruktur und implementiert noch keinen solchen Befehl. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Anstatt einem Stub, der immer einen Fehler zurückgibt, wird jetzt für LIOv2-Dateien ein richtiges lio_dup() durchgeführt. Für LIOv1-Dateien dupliziert der POSIX-Layer einfach nur intern das Mapping von POSIX-Dateideskriptoren auf LIO-Streams. Das ist zwar kaputt, weil es auf dieser Ebene keine Referenzzähler gibt und ein close() alle Kopien zumacht, aber es scheint gut genug für git zu sein, das ein dup() für einen Socket macht. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
+ libc: Statt einem Stub, der immer einen Fehler zurückgibt, können wir jetzt in pipe() eine richtige Pipe erstellen Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
! libc: chdir() sollte nicht nur den absoluten Pfad herausfinden, zu dem es wechseln soll, sondern dann auch diesen absoluten Pfad statt dem relativen nach $CWD schreiben. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 24 Dec, 2016 1 commit
-
-
Kevin Wolf authored
* shell: Dieser Commit spendiert der Shell Ansätze von einem richtigen Parser anstatt nur Dateiumleitungen aus der Tokensuppe herauszufischen und den Rest als Argumente zu nehmen. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-