Blogging about Midori (2015) - https://news.ycombinator.com/item?id=21988694 - Jan 2020 (27 comments)
The Error Model in Midori - https://news.ycombinator.com/item?id=11054912 - Feb 2016 (41 comments)
Midori: A Tale of Three Safeties - https://news.ycombinator.com/item?id=10871222 - Jan 2016 (7 comments)
What happened to Microsoft's Midori operating system project? - https://news.ycombinator.com/item?id=10576697 - Nov 2015 (34 comments)
Blogging about Midori - https://news.ycombinator.com/item?id=10545353 - Nov 2015 (1 comment)
More details on Microsoft's new M# language - https://news.ycombinator.com/item?id=6983649 - Dec 2013 (49 comments)
Microsoft's Midori operating-system skunkworks project soldiers on - https://news.ycombinator.com/item?id=4758071 - Nov 2012 (1 comment)
Goodbye, XP. Hello, Midori - https://news.ycombinator.com/item?id=232554 - June 2008 (1 comment)
Do OS written in C# have good performance?
GC code using Boehm would not be suitable for device drivers nor realtime code.
I can understand where making it available for higher level systems is desirable.
I could envision the kinds of alternative GC systems that could be inbuilt given the knowledge an OS may have about a process or a sub-system etc. Alternatively, Objective C settled upon reference counting (ARC) and this is superior to GC where it counts.
Where do you envision the GC bootstrapping and how do you see it interacting with virtual memory and your malloc implementation?
It's all highly dependent on the interface between the language and its runtime. Hypothetically, your C# runtime (and by runtime, I'm using it in the same sense that Rust or C++ would use it; I'm not referring to a VM) could provide a function that allocates memory (C#-esque pseudocode):
public static ulong New(ulong bytes)
{
if (gcInitialized)
{
return GcNew(bytes);
}
else
{
return BootstrapHeapNew(bytes);
}
}
Until the GC is boostrapped, all allocations are made on a heap, and either manually freed or kept around until the GC takes over deallocation.> GC code using Boehm would not be suitable for device drivers nor realtime code.
I completely agree, I just provided it as an example of a GC implemented in the same language.
> Where do you envision the GC bootstrapping and how do you see it interacting with virtual memory and your malloc implementation?
I don't see the GC interacting with userland in this case, and instead would only be used for kernel data structures. I don't really think it's a good idea to have GC in a kernel, I only wanted to point out that low-level code and garbage collection are not mutually exclusive.
ARC does nothing special other than automate [myCocoaClass retain] and [myCocoaClass release], a compromise after putting a conservative trancing GC in Objective did not work as expected, given the amount of caveats with GC unaware C code.
As such, Objective-C performance related to heap management remains unchanged.