4 ms·
Zircon is very much in the legacy of linux. The biggest sin of Linux API remains ioctl (and its variants). Zircon commits the same mistake with its `object_get
by valarauca1 9y ago
Zircon is very much in the legacy of linux.
The biggest sin of Linux API remains ioctl (and its variants). Zircon commits the same mistake with its `object_get_prop` [1] and `object_get_info` [2]. If you pretend to be type safe (have different getters for different obj-types), you can in the long run replace these calls with in-userland static calls where possible to accelerate performance (like linux does for futex and time).
Instead you get his "It does A if you give it B, it does C if you give it D" this is pretty bad API design as it NEEDS a void pointer. I'd rather see _a lot_ of simple with numbers related to the call. You have 4 million of them FFS (if you care about 32bit compatibility).
It just leaves a bad taste in my mouth. The API design is extremely nice otherwise, and these methods feel like such an after thought.
---
To be clear I really don't care about POSIX compatibility, its easy to shoe horn in after you have a solid OS. The Windows-NT kernel has done it twice now (NT4.0 and Windows10).
[1] https://fuchsia.googlesource.com/zircon/+/master/docs/syscalls/object_get_property.md https://fuchsia.googlesource.com/zircon/+/master/docs/syscal...
[2] https://fuchsia.googlesource.com/zircon/+/master/docs/syscalls/object_get_info.md https://fuchsia.googlesource.com/zircon/+/master/docs/syscal...
- JdeBP 9y agoActually, three times. There were two POSIX subsystems.