mini-os | Minimalistic Operating System for Xen | Infrastructure Automation library
kandi X-RAY | mini-os Summary
kandi X-RAY | mini-os Summary
Minimalistic Operating System for Xen
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of mini-os
mini-os Key Features
mini-os Examples and Code Snippets
Community Discussions
Trending Discussions on mini-os
QUESTION
So, I'm building a mini-OS using a PDF I found online. So far, I was making decent progress on the project, however the pdf has reached a concept it doesn't really explain well.
The reader is given four examples of storing a string at a register with the intention of printing it. The fourth example is where things become confusing. Using figure 3.6 below, we find out that the string is 30 bytes away from the offset at bit '1e'.
Now, I understand why we are at 0x7cXX as it is the offset of the boot sector. What I do NOT understand is how we know that it's last 2 bits are 1e.
What I think the answer is : Well, we store the offset 0x0e to the ah register, right? And the interrupt command is 0x10 which is the low order bit of ah. The thing is, that doesn't really explain why that makes such sweeping changes to the binary version of the program in figure 3.6, and I got that from my intuition rather than any salient logic.
Why do we know the string variable is at 0x7c1e?
...ANSWER
Answered 2020-Aug-31 at 19:43Using the label is the proper way to do this, as suggested in the comments. You also will have to tell the assembler what your origin point (org
) is to have it emit the correct address. Besides, you should initialise the data segment (ds
) register because your memory load uses it implicitly.
I am assuming you're using NASM because the times
directive is a NASMism. To fix your code and have it use a label like you should:
QUESTION
I've been reading a ton of tutorials about OS development on x86, and so far all has gone well - until now. I can't figure out what the solution is for the life of me.
My goal is to write the simplest possible keyboard driver for x86. Things work well with QEMU, but not with GRUB.
I did my best to emulate mkeykernel based on the article by Arjun Sreedharan. Unfortunately, this problem also exists for mkeykernel.
When running my compiled kernel using qemu-system-i386 -kernel kernel.bin
, everything works as expected: I type, and letters are displayed on the screen.
However, when I create and run a GRUB ISO using grub-mkrescue
, the system reboots whenever I hit a key.
When running with qemu-system-i386 -cdrom build/myos.iso -d int --no-reboot
, I was able to find out that the CPU exception is 0xd General Protection Fault. At first, I thought this was because the GDT was set in an unexpected way by GRUB. But as you'll see below, I added my own GDT and it did not fix the problem.
I also found a close match on StackOverflow here. I followed pretty much all of the advice in that article, especially the one about packing the structs, to no avail.
This is the first time I've ever been so stumped to the point that I wrote a StackOverflow question :) Hopefully someone will be able to see the issue here!
I have included the source code for all relevant files and instructions to build them / recreate the problem below.
First file: kernel.asm
ANSWER
Answered 2020-Jul-14 at 03:09The solution (thanks to @MichaelPetch) was to setup segment registers after loading the GDT. My new entry point:
QUESTION
I am working on new costume board based on (i. MX 6Solo6DualLite).and I use (TJA1100 100BASE-T1 PHY) for Automotive Ethernet..
please correct me if my questions don't make sense, or I am in the wrong way.
I want to write driver for this device.. and make sure that it works correctly.
1- I can make sure that the driver works properly in the U-boot step, Right? I mean no need to load Linux kernel, so I have just to add source code C driver in U-boot source code and compile it. I want to do this in U-boot step, so I can limit the numbers of files that initialise all peripheriques, and make it simple as possible since that U-boot can behave like (mini-Os)
2-I don't know how to write this driver (exactly..), so I am looking for the driver (source code) that initialise the Ethernet Controller in any other processor , and initialise another typeof ethernet phy, in order to get an idea and write a similar driver source code for I.MX6 and TJA1100,? after this i think that i could maybe add some very basic file c For simple Protocol like ARP, for test purpose..
3- is this good idea writing driver code by inspiring from another driver code source?
4 - maybe, if you already have a driver for (i. MX 6Solo6DualLite and TJA1100 100BASE-T1 PHY) can you provide to me please... ?
for my second question i tried to extract from U-boot source code the C file that initialise Ethernet Controller in AM335x, and initialise LAN8710A phy,(in beaglebone black) in order to get an idea and write a similar driver source code but i couldn't found it .. i found network C file for protocol .... but that's disturp me i couldn't seperate them from the real C file that initialise ethernet controller and ethernent Phy .
...ANSWER
Answered 2019-May-20 at 14:25There is a driver published on the NXP forum:
https://community.nxp.com/thread/460767
It includes both some bare metal code that should be usable with U-Boot and a Linux driver.
QUESTION
So I am making a "Mini-OS" an OS that works in your browser, and in the "Settings" > "Accessibility" tab I have an option to switch text shadows on / off (default is on). But the text shadows won't turn off, (I am using CSS and JavaScript).
I tried checking for typos, and looking at error logs, but nothing was found. The variable being used as a place holder (ApplyTextShadows) switches its value, but the text shadows don't.
...ANSWER
Answered 2019-May-10 at 17:53Use a class that you add and remove.
QUESTION
First of all, I would like to say sorry for that long question / problem description. On other hand, many of you like to know what is the discussed problem exactly related to ;) You can skip to last paragraph where the question is ;)
I am currently working on RMI (remote method invocation) for web workers / main ui thread for my framework (https://ajsfw.azurewebsites.net / https://github.com/atomsoftwarestudios). I need it to be possible to optimize performance of the main-ui thread (I wanted to avoid it in the beginning, but currently, its possible to notice "lagging" of animations when there are content-preparation tasks like model data processing, view component state updates, virtual dom updates or others running in the background).
It includes ES6 class / ES5 "TypeScript class" "parsing" from the main-ui thread using toString() method including the class prototype tree. Once this is done and the code is grabbed and reconstructed the "source code" it passed over message channel (I call it RIB - remote invocation bus - as I have developed some network-like infrastructure to be possible to identify endpoints and invoke methods of deployed classes from whatever another endpoint) to another side. All this processes includes caching and reusing already parsed / reconstructed / instanced code so basically some optimizations of the RIB bandwidth and CPU resources usage.
Once the class is delivered to the worker and it is requested to be used from another worker or main-ui-thread it is instanced inside worker and the "proxy" class with same methods (but internally using the RMI infrastructure to call method on the opposite side and "await" the return value or exception) is instanced (or reused) on opposite side. There are two instancing strategies, so the class can be instanced or existing instance can be reused - that because I have adopted configurable .Net Core DI container with its 3 service scoping strategies) and i'll integrate it with all this machinery once this will be fully finished. Just to finish it - if the dependent class (object, service) is using the class in the same worker or the main-ui thread, the proxy is not used but rather direct reference is injected so the RMI is avoided). Of course, there will be a few limitations, but I don't want to discuss the full functionality here.
What I would like to discuss is related to parsing names and avoiding name collisions during reconstruction on the worker side while keeping the "user code" as clean as possible without need to push developers to add additional metadata to the code and ideally completely avoid string metadata to don't block anything imaginable (such as code minification - please don't say minifiers don't mangle class names under some circumstances ;), I hope still for full code minification so even this would be possible).
So basically, there are 3 types of information it is possible to get from the class definition. 2 of them can be parsed from its .toString() method (as .name is not 100% working on all platforms I am targeting). Its a Non-FQDN runtime class name and some times FQDN, sometimes Non-FQDN of the class it extends (based on where the class is defined -> in case of TypeScript namespace and non-exported classes they are defined in anonymous closure so no way how to obtain the FQDN at all - sure, I can parse the source code, assign unique id to each anonymous closure ... uf, stop right now ;) ). Third information I can grab is the "unique class instance reference", basically the object representing the constructor function at runtime (of course, including its prototype chain) so it is possible to identify classes easily, reconstruct code, cache, parse, pass over, cache, reconstuct, instance... uf ;)
Only the one problem are class name collisions. That's because I want to keep same class names on other side (because of debugging, because of possibility of using instanceof, without need of any additional modification of the parsed code, whatever, take it as it is ;).
Question comes now:
So just to summarize. As mentioned, it is not possible to avoid class name collisions in particular thread (worker) while reconstructing them from main ui thread because it is not possible to collect the scope information in the main thread and reconstruct it on worker side. Actually, it is by parsing the source code file, but it would be too complex and rather it would be better to split code to modules and load them separately using XHR to workers, what I would like to avoid - it does not fit my framework concept at all, and this is what I want not to discuss here, because I have chosen this way, maybe it not correct, maybe its not how others are doing it, but I have chosen it ;) By the way, I am doing many things differently, especially tempting and hopefully you'll like it once I'll found a time to describe it to the documentation.
I would like to ask how you would solve a problem with class name collisions when creating them dynamically inside the web worker (using eval or new Function, does not matter) while keeping the same class names as in the main UI thread. I came with two solutions, one is more complex, second simpler, the problem is sill deep as classes should see another ones because they would require to extend them.
a) I would create a namespace (object) for each class and the I'll create a class inside. This would require to change "extends" statement, but it will probably require it anyway
b) I would create single namespace (object) where I'll put all classes and if the name collision will be detected I'll create a new namespace for the colliding class. Then I'll manage this in some way with more code than in previous case
c) Is there any better way how to do it? With described requirements in mind i think
Thanks for reading and sorry for that long article / question
EDIT:
So, as it is impossible to find "service" internals when I want to avoid code parsing, in the end I'll probably go for the following solution (just example, in real it will look bit different):
...ANSWER
Answered 2017-May-16 at 13:05Maybe you should consider saying the reason why you are deleting the answer. And at least notify author about it. Its hard to improve without feedback!
So another try:
So, I made some proof of concept. It is not ideal but without complete source code of modules being transferred it never will be.
See https://jsfiddle.net/1cy1vcsa/1/
its somehow commented, but will require some time to get in.
Serialization is traversing the namespace object and grabs everything possible from it.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install mini-os
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page